class GLI::GLIOptionParser::LegacyCommandOptionParser
def find_subcommand(command,arguments,autocomplete)
def find_subcommand(command,arguments,autocomplete) 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, :autocomplete => autocomplete) begin results = [finder.find_command(command_name),arguments[1..-1]] find_subcommand(results[0],results[1],autocomplete) rescue UnknownCommand, AmbiguousCommand begin results = [finder.find_command(default_command.to_s),arguments] find_subcommand(results[0],results[1],autocomplete) rescue UnknownCommand, AmbiguousCommand [command,arguments] end end end
def parse!(parsing_result,argument_handling_strategy,autocomplete)
def parse!(parsing_result,argument_handling_strategy,autocomplete) 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,autocomplete) parsing_result.command = subcommand parsing_result.arguments = args verify_required_options!(command.flags, parsing_result.command, parsing_result.command_options) end