Module: Cartage::CLIOptionsSupport

Included in:
GLI::App, GLI::Command
Defined in:
lib/cartage/gli_ext.rb

Overview

:nodoc:

Instance Method Summary collapse

Instance Method Details

#clear_defaults_from(opts, flag_set: flags, symbol_defaults_only: true) ⇒ Object

Clears defaults from a flag-set. By default, only clears symbolic defaults (e.g., :'default-value'.)



9
10
11
12
13
14
15
16
17
18
19
# File 'lib/cartage/gli_ext.rb', line 9

def clear_defaults_from(opts, flag_set: flags, symbol_defaults_only: true)
  flag_set.each do |name, flag|
    next unless flag.default_value
    next if symbol_defaults_only && !flag.default_value.kind_of?(Symbol)
    next unless opts[name] == flag.default_value

    aliases = [ name, *flag.aliases ].compact
    aliases += aliases.map(&:to_s)
    aliases.each { |aka| opts[aka] = nil }
  end
end