class EverydayCliUtils::SpecialOptionDef

Attributes

names[R]
order[R]
settings[R]
state[RW]

Public Class Methods

new(order, exit_on_action, names, print_on_exit_str, settings, action_block, pre_parse_block = nil) click to toggle source
# File lib/everyday-cli-utils/option.rb, line 183
def initialize(order, exit_on_action, names, print_on_exit_str, settings, action_block, pre_parse_block = nil)
  @order             = order
  @exit_on_action    = exit_on_action
  @names             = names
  @print_on_exit_str = print_on_exit_str
  @settings          = settings
  @action_block      = action_block
  @pre_parse_block   = pre_parse_block
  @state             = false
end
register(order, opts, options, opt_name, names, exit_on_action, print_on_exit_str, settings, default_settings, action_block, pre_parse_block = nil) click to toggle source
# File lib/everyday-cli-utils/option.rb, line 209
def register(order, opts, options, opt_name, names, exit_on_action, print_on_exit_str, settings, default_settings, action_block, pre_parse_block = nil)
  settings                          = EverydayCliUtils::MapUtil.extend_hash(default_settings, settings)
  opt                               = SpecialOptionDef.new(order, exit_on_action, names, print_on_exit_str, settings, action_block, pre_parse_block)
  options.special_options[opt_name] = opt
  names << settings[:desc] if settings.has_key?(:desc)
  opts.on(*names) { opt.state = true }
end

Public Instance Methods

run(options_list) click to toggle source
# File lib/everyday-cli-utils/option.rb, line 194
def run(options_list)
  if @state
    @action_block.call(self, options_list)
    if @exit_on_action
      puts @print_on_exit_str unless @print_on_exit_str.nil?
      exit 0
    end
  end
end
run_pre_parse(options_list) click to toggle source
# File lib/everyday-cli-utils/option.rb, line 204
def run_pre_parse(options_list)
  @pre_parse_block.call(self, options_list) unless @pre_parse_block.nil?
end