Abstract generator base class Generators should inherit this class and compile the Core Abstraction to ruby code.
@api public
# File lib/temple/generators.rb, line 19 def call(exp) [preamble, compile(exp), postamble].join('; ') end
# File lib/temple/generators.rb, line 23 def on(*exp) raise InvalidExpression, "Generator supports only core expressions - found #{exp.inspect}" end
# File lib/temple/generators.rb, line 35 def on_capture(name, exp) options[:capture_generator].new(:buffer => name).call(exp) end
# File lib/temple/generators.rb, line 47 def on_code(code) code end
# File lib/temple/generators.rb, line 43 def on_dynamic(code) concat(code) end
# File lib/temple/generators.rb, line 27 def on_multi(*exp) exp.map {|e| compile(e) }.join('; ') end
# File lib/temple/generators.rb, line 31 def on_newline "\n" end
# File lib/temple/generators.rb, line 39 def on_static(text) concat(text.inspect) end
# File lib/temple/generators.rb, line 53 def buffer options[:buffer] end
# File lib/temple/generators.rb, line 57 def concat(str) "#{buffer} << (#{str})" end