Class: Junoser::Squash

Inherits:
Object
  • Object
show all
Defined in:
lib/junoser/squash.rb

Instance Method Summary collapse

Constructor Details

#initialize(io_or_string) ⇒ Squash

Returns a new instance of Squash.



6
7
8
9
10
11
# File 'lib/junoser/squash.rb', line 6

def initialize(io_or_string)
  @input = io_or_string
  @lines = []
  @parser = Junoser::Parser.new
  @transformer = Junoser::Transformer.new
end

Instance Method Details

#transformObject



13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
# File 'lib/junoser/squash.rb', line 13

def transform
  config = Junoser::Input.new(@input).read.split("\n")
  config.each do |l|
    l.strip!
    case l
    when /^(set|deactivate) /
      @lines << l
    when /^delete /
      delete_lines delete_pattern(l.gsub(/^delete /, 'set '))
    when /^activate /
      delete_lines l.gsub(/^activate /, 'deactivate ')
    when /^insert (.*) before (.*)/
      insert_before "set #{$1}", $2
    when /^insert (.*) after (.*)/
      insert_after "set #{$1}", $2
    end
  end

  @lines.uniq!
  remove_subcommand(@lines).map(&:strip).join("\n")
end