class Dry::Configurable::Compiler
@api private
Setting compiler used internally by the DSL
def call(ast)
def call(ast) Settings.new.tap do |settings| ast.each do |node| settings << visit(node) end end end
def visit(node)
- Api: - private
def visit(node) type, rest = node public_send(:"visit_#{type}", rest) end
def visit_nested(node)
- Api: - private
def visit_nested(node) parent, children = node name, opts = parent[1] Setting.new(name, **opts, children: Settings.new(call(children))) end
def visit_setting(node)
- Api: - private
def visit_setting(node) name, opts = node Setting.new(name, **opts) end