class Dry::Configurable::Setting
@api private
This class represents a setting and is used internally.
def self.cloneable_value?(value)
- Api: - private
def self.cloneable_value?(value) CLONEABLE_VALUE_TYPES.any? { |type| value.is_a?(type) } end
def cloneable?
- Api: - private
def cloneable? cloneable end
def initialize(
- Api: - private
def initialize( name, default:, constructor: DEFAULT_CONSTRUCTOR, children: EMPTY_ARRAY, **options ) @name = name @default = default @cloneable = children.any? || options.fetch(:cloneable) { Setting.cloneable_value?(default) } @constructor = constructor @children = children @options = options end
def reader?
- Api: - private
def reader? options[:reader].equal?(true) end
def to_value
- Api: - private
def to_value if children.any? (options[:config_class] || Config).new(children) else value = default value = constructor.(value) unless value.eql?(Undefined) cloneable? ? value.dup : value end end