module Dry::Configurable

def setting(key, *args, &block)

Other tags:
    Api: - public

Returns:
  • (Dry::Configurable::Config) -

Other tags:
    Yield: -

Parameters:
  • default (Mixed) --
  • key (Mixed) --
def setting(key, *args, &block)
  raise_already_defined_config(key) if defined?(@_config)
  value, options = ArgumentParser.call(args)
  if block
    if block.parameters.empty?
      value = _config_for(&block)
    else
      processor = block
    end
  end
  _settings << ::Dry::Configurable::Config::Value.new(
    key,
    !value.nil? ? value : ::Dry::Configurable::Config::Value::NONE,
    processor || ::Dry::Configurable::Config::DEFAULT_PROCESSOR
  )
  store_reader_options(key, options) if options.any?
end