class Dry::Configurable::Compiler
Setting
compiler used internally by the DSL
@api private
Public Instance Methods
call(ast)
click to toggle source
# File lib/dry/configurable/compiler.rb, line 12 def call(ast) Settings.new.tap do |settings| ast.each do |node| settings << visit(node) end end end
visit(node)
click to toggle source
@api private
# File lib/dry/configurable/compiler.rb, line 21 def visit(node) type, rest = node public_send(:"visit_#{type}", rest) end
visit_constructor(node)
click to toggle source
@api private
# File lib/dry/configurable/compiler.rb, line 27 def visit_constructor(node) setting, constructor = node visit(setting).with(constructor: constructor) end
visit_nested(node)
click to toggle source
@api private
# File lib/dry/configurable/compiler.rb, line 39 def visit_nested(node) parent, children = node visit(parent).nested(call(children)) end
visit_setting(node)
click to toggle source
@api private
# File lib/dry/configurable/compiler.rb, line 33 def visit_setting(node) name, default, opts = node Setting.new(name, **opts, default: default) end