Class: Zpl::Transformer::Base

Inherits:
Object
  • Object
show all
Defined in:
lib/zpl-transformer/transformer/base.rb

Overview

TODO: doc - explain how to make a transformer

Direct Known Subclasses

BaseScaler, CmdRemover, Pipeline

Instance Method Summary collapse

Instance Method Details

#apply(zpl_code, strip_spaces: true) ⇒ Object

TODO: doc



11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
# File 'lib/zpl-transformer/transformer/base.rb', line 11

def apply(zpl_code, strip_spaces: true)
  reader = Reader.new(zpl_code, strip_spaces: strip_spaces)
  transformed_zpl = StringIO.new

  while token = reader.next_token
    if token.is_a?(Command)
      # It's a command, transform it
      if new_cmd = self.map_cmd(token)
        transformed_zpl << new_cmd.to_zpl_string
      end
    else
      # Not a command, just append it
      transformed_zpl << token
    end
  end

  transformed_zpl.string
end

#map_cmd(cmd) ⇒ Object

TODO: doc



31
32
33
# File 'lib/zpl-transformer/transformer/base.rb', line 31

def map_cmd(cmd)
  cmd
end