class Rootage::OptionDefinition
‘OptionDefinition` is a class that holds command’s option definitions.
Private Instance Methods
check(cmd)
click to toggle source
Check validness of the command options.
# File lib/rootage/option.rb, line 150 def check(cmd) # check requisite options list.each do |item| if item.requisite and not(cmd.model[item.key]) raise OptionError.new(cmd, 'option "%s" is requisite' % [item.long]) end end end
execute_main(cmd)
click to toggle source
Parse the command options.
@param cmd [Command]
command object
@return [void]
# File lib/rootage/option.rb, line 122 def execute_main(cmd) # append help option _list = list.clone _list << HelpOption.help _list.each do |item| # merge init values if item.init cmd.model[item.name] = Normalizer.normalize(item.type, item.init) end # set process context class if item.process_context_class.nil? item.process_context_class = get_process_context_class(cmd) end end # parse options OptionParser.new do |opt| _list.each {|item| item.setup(opt, cmd)} end.send(cmd.has_subcommands? ? :order! : :parse!, cmd.argv) # check option's validness check(cmd) rescue OptionParser::ParseError, NormalizerValueError => e raise OptionError.new(cmd, e.message) end