Sha256: af821b5c9598c4a3e9a0847b7427a8228cc634a0b2e0e9c26854ed516fe54b8f
Contents?: true
Size: 792 Bytes
Versions: 3
Compression:
Stored size: 792 Bytes
Contents
# frozen_string_literal: true require "dry/configurable/setting" require "dry/configurable/settings" module Dry module Configurable # Setting compiler used internally by the DSL # # @api private class Compiler def call(ast) Settings.new.tap do |settings| ast.each do |node| settings << visit(node) end end end # @api private def visit(node) type, rest = node public_send(:"visit_#{type}", rest) end # @api private def visit_setting(node) name, opts = node Setting.new(name, **opts) end # @api private def visit_nested(node) parent, children = node visit(parent).nested(call(children)) end end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
dry-configurable-0.15.0 | lib/dry/configurable/compiler.rb |
dry-configurable-0.14.0 | lib/dry/configurable/compiler.rb |
dry-configurable-0.13.0 | lib/dry/configurable/compiler.rb |