class EverydayCliUtils::OptionDef
Attributes
names[R]
value[R]
Public Class Methods
new(type, names, settings = {}, &block)
click to toggle source
# File lib/everyday-cli-utils/option.rb, line 136 def initialize(type, names, settings = {}, &block) @type = type @names = names @settings = settings @block = block @value = OptionTypes.default_value(type, settings) @values = {} end
register(opts, options, type, opt_name, names, settings = {}, default_settings = {}, &block)
click to toggle source
# File lib/everyday-cli-utils/option.rb, line 166 def register(opts, options, type, opt_name, names, settings = {}, default_settings = {}, &block) settings = EverydayCliUtils::MapUtil.extend_hash(default_settings, settings) opt = OptionDef.new(type, names.clone, settings, &block) options[opt_name] = opt names = OptionTypes.mod_names(type, names, settings) opts.on(*names) { |*args| opt.update(args, :arg) opt.run } end
Public Instance Methods
composite(*layers)
click to toggle source
# File lib/everyday-cli-utils/option.rb, line 159 def composite(*layers) value = @value layers.each { |layer| value = OptionTypes.updated_value(@type, value, @values[layer], @settings) if @values.has_key?(layer) } value end
run()
click to toggle source
# File lib/everyday-cli-utils/option.rb, line 155 def run @block.call unless @block.nil? || !@block end
set(value)
click to toggle source
# File lib/everyday-cli-utils/option.rb, line 145 def set(value) @value = value @values = {} end
update(value, layer)
click to toggle source
# File lib/everyday-cli-utils/option.rb, line 150 def update(value, layer) @values[layer] = OptionTypes.default_value(@type, @settings) unless @values.has_key?(layer) @values[layer] = OptionTypes.updated_value(@type, @values[layer], value, @settings) end