class Dry::Transformer::Pipe::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/dry/transformer/pipe/dsl.rb, line 17 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/dry/transformer/pipe/dsl.rb, line 34 def call(transformer) Compiler.new(container, transformer).(ast) end
dup()
click to toggle source
@api private
# File lib/dry/transformer/pipe/dsl.rb, line 29 def dup self.class.new(container, ast: ast.dup) end
t(name, *args)
click to toggle source
@api public
# File lib/dry/transformer/pipe/dsl.rb, line 24 def t(name, *args) container[name, *args] end
Private Instance Methods
method_missing(meth, *args, &block)
click to toggle source
@api private
# File lib/dry/transformer/pipe/dsl.rb, line 51 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/dry/transformer/pipe/dsl.rb, line 41 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/dry/transformer/pipe/dsl.rb, line 46 def respond_to_missing?(method, _include_private = false) super || container.contain?(method) end