class SocialSnippet::Inserter
Attributes
dest[R]
dest_index[R]
src[R]
src_index[R]
Public Class Methods
new(src)
click to toggle source
Constructor
@param src [Array<String>] The source code
# File lib/social_snippet/inserter.rb, line 11 def initialize(src) @src_index = 0 @dest_index = -1 @src = src.clone.freeze @dest = [] end
Public Instance Methods
ignore()
click to toggle source
Ignore current line
# File lib/social_snippet/inserter.rb, line 38 def ignore @src_index += 1 end
insert(line_or_lines)
click to toggle source
Insert text
@param line_or_lines [String or Array<String>] The inserted text
# File lib/social_snippet/inserter.rb, line 45 def insert(line_or_lines) if line_or_lines.is_a?(Array) lines = line_or_lines dest.insert dest_index + 1, *lines @dest_index += lines.length else line = line_or_lines dest.insert dest_index + 1, line @dest_index += 1 end end
set_index(new_index)
click to toggle source
Set index
@param new_index [Number] The next index
# File lib/social_snippet/inserter.rb, line 21 def set_index(new_index) if new_index > src.length raise "invalid index" end if new_index > src_index last_index = [new_index - 1, src.length - 1].min insert src[src_index .. last_index] @src_index = new_index end end
set_index_last()
click to toggle source
Set index to last
# File lib/social_snippet/inserter.rb, line 33 def set_index_last set_index src.length end
to_s()
click to toggle source
Get text
@return [String]
# File lib/social_snippet/inserter.rb, line 60 def to_s dest.join($/) end