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