Class: FileSplicer

Inherits:
Object
  • Object
show all
Defined in:
lib/reveal-ck/file_splicer.rb

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(lines) ⇒ FileSplicer

Returns a new instance of FileSplicer.



3
4
5
# File 'lib/reveal-ck/file_splicer.rb', line 3

def initialize(lines)
  @lines = lines
end

Class Method Details

.insert!(to_insert, opts) ⇒ Object



14
15
16
17
18
19
20
21
22
# File 'lib/reveal-ck/file_splicer.rb', line 14

def self.insert!(to_insert, opts)
  to_insert_lines = readlines to_insert
  insert_into_file = find_file opts[:into]
  insert_into_lines = readlines insert_into_file

  splicer = FileSplicer.new insert_into_lines
  spliced_lines = splicer.insert to_insert_lines, after: opts[:after]
  File.open(insert_into_file, 'w') { |f| f << spliced_lines.join }
end

Instance Method Details

#insert(new_lines, opts) ⇒ Object



7
8
9
10
11
12
# File 'lib/reveal-ck/file_splicer.rb', line 7

def insert(new_lines, opts)
  index = @lines.each.with_index do |line, i|
    break i + 1 if line.include? opts[:after]
  end
  @lines.insert(index, new_lines).flatten
end