class Transproc::Transformer::DSL
@api public
Attributes
ast[R]
@api private
container[R]
@api private
Public Class Methods
new(container, ast: [], &block)
click to toggle source
@api private
# File lib/transproc/transformer/dsl.rb, line 16 def initialize(container, ast: [], &block) @container = container @ast = ast instance_eval(&block) if block end
Public Instance Methods
call(transformer)
click to toggle source
@api private
# File lib/transproc/transformer/dsl.rb, line 28 def call(transformer) Compiler.new(container, transformer).(ast) end
dup()
click to toggle source
@api private
# File lib/transproc/transformer/dsl.rb, line 23 def dup self.class.new(container, ast: ast.dup) end
Private Instance Methods
method_missing(meth, *args, &block)
click to toggle source
@api private
# File lib/transproc/transformer/dsl.rb, line 45 def method_missing(meth, *args, &block) arg_nodes = *args.map { |a| [:arg, a] } ast << [:fn, (block ? [meth, [*arg_nodes, node(&block)]] : [meth, arg_nodes])] end
node(&block)
click to toggle source
@api private
# File lib/transproc/transformer/dsl.rb, line 35 def node(&block) [:t, self.class.new(container, &block).ast] end
respond_to_missing?(method, _include_private = false)
click to toggle source
@api private
Calls superclass method
# File lib/transproc/transformer/dsl.rb, line 40 def respond_to_missing?(method, _include_private = false) super || container.contain?(method) end