class Dry::Configurable::ArgumentParser
@private
def self.call(data)
def self.call(data) parsed = new(data) [parsed.value, parsed.options] end
def check_for_value_or_options(args)
- Private: -
def check_for_value_or_options(args) case args when Hash parse_hash(args) else { value: args } end end
def check_options(opts)
- Private: -
def check_options(opts) return {} if opts.empty? opts.select { |k, _| VALID_OPTIONS.include?(k) } end
def default_args
- Private: -
def default_args { value: nil, options: {} } end
def hash_include_options_key(hash)
- Private: -
def hash_include_options_key(hash) hash.any? { |k, _| VALID_OPTIONS.include?(k) } end
def initialize(data)
def initialize(data) @data = data end
def options
def options parse_args[:options] end
def parse_args
- Private: -
def parse_args return default_args if data.empty? if data.size > 1 { value: data.first, options: check_options(data.last) } else default_args.merge(check_for_value_or_options(data.first)) end end
def parse_hash(args)
- Private: -
def parse_hash(args) if hash_include_options_key(args) { options: check_options(args) } else { value: args } end end
def value
def value parse_args[:value] end