class GLI::GLIOptionParser::LegacyCommandOptionParser
Public Instance Methods
parse!(parsing_result,argument_handling_strategy)
click to toggle source
# File lib/gli/gli_option_parser.rb, line 181 def parse!(parsing_result,argument_handling_strategy) command = parsing_result.command option_parser_factory = OptionParserFactory.for_command(command,@accepts) option_block_parser = LegacyCommandOptionBlockParser.new(option_parser_factory, self.error_handler) option_block_parser.command = command parsing_result.arguments = option_block_parser.parse!(parsing_result.arguments) parsing_result.command_options = option_parser_factory.options_hash_with_defaults_set! subcommand,args = find_subcommand(command,parsing_result.arguments) parsing_result.command = subcommand parsing_result.arguments = args verify_required_options!(command.flags, parsing_result.command, parsing_result.command_options) end
Private Instance Methods
find_subcommand(command,arguments)
click to toggle source
# File lib/gli/gli_option_parser.rb, line 198 def find_subcommand(command,arguments) arguments = Array(arguments) command_name = if arguments.empty? nil else arguments.first end default_command = command.get_default_command finder = CommandFinder.new(command.commands, :default_command => default_command.to_s) begin results = [finder.find_command(command_name),arguments[1..-1]] find_subcommand(results[0],results[1]) rescue UnknownCommand, AmbiguousCommand begin results = [finder.find_command(default_command.to_s),arguments] find_subcommand(results[0],results[1]) rescue UnknownCommand, AmbiguousCommand [command,arguments] end end end