lib/yard/cli/command_parser.rb in yard-0.9.16 vs lib/yard/cli/command_parser.rb in yard-0.9.17
- old
+ new
@@ -1,93 +1,93 @@
-# frozen_string_literal: true
-module YARD
- module CLI
- # This class parses a command name out of the +yard+ CLI command and calls
- # that command in the form:
- #
- # $ yard command_name [options]
- #
- # If no command or arguments are specified, or if the arguments immediately
- # begin with a +--opt+ (not +--help+), the {default_command} will be used
- # (which itself defaults to +:doc+).
- #
- # == Adding a Command
- #
- # To add a custom command via plugin, create a mapping in {commands} from
- # the Symbolic command name to the {Command} class that implements the
- # command. To implement a command, see the documentation for the {Command}
- # class.
- #
- # @see Command
- # @see commands
- # @see default_command
- class CommandParser
- class << self
- # @return [Hash{Symbol => Command}] the mapping of command names to
- # command classes to parse the user command.
- attr_accessor :commands
-
- # @return [Symbol] the default command name to use when no options
- # are specified or
- attr_accessor :default_command
- end
-
- self.commands = SymbolHash[
- :config => Config,
- :diff => Diff,
- :display => Display,
- :doc => Yardoc,
- :gems => Gems,
- :graph => Graph,
- :help => Help,
- :list => List,
- :markups => MarkupTypes,
- :ri => YRI,
- :server => Server,
- :stats => Stats,
- :i18n => I18n
- ]
-
- self.default_command = :doc
-
- # Convenience method to create a new CommandParser and call {#run}
- # @return (see #run)
- def self.run(*args) new.run(*args) end
-
- def initialize
- log.show_backtraces = false
- end
-
- # Runs the {Command} object matching the command name of the first
- # argument.
- # @return [void]
- def run(*args)
- unless args == ['--help']
- if args.empty? || args.first =~ /^-/
- command_name = self.class.default_command
- else
- command_name = args.first.to_sym
- args.shift
- end
- if commands.key?(command_name)
- return commands[command_name].run(*args)
- end
- end
- list_commands
- end
-
- private
-
- def commands; self.class.commands end
-
- def list_commands
- log.puts "Usage: yard <command> [options]"
- log.puts
- log.puts "Commands:"
- commands.keys.sort_by(&:to_s).each do |command_name|
- command = commands[command_name].new
- log.puts "%-8s %s" % [command_name, command.description]
- end
- end
- end
- end
-end
+# frozen_string_literal: true
+module YARD
+ module CLI
+ # This class parses a command name out of the +yard+ CLI command and calls
+ # that command in the form:
+ #
+ # $ yard command_name [options]
+ #
+ # If no command or arguments are specified, or if the arguments immediately
+ # begin with a +--opt+ (not +--help+), the {default_command} will be used
+ # (which itself defaults to +:doc+).
+ #
+ # == Adding a Command
+ #
+ # To add a custom command via plugin, create a mapping in {commands} from
+ # the Symbolic command name to the {Command} class that implements the
+ # command. To implement a command, see the documentation for the {Command}
+ # class.
+ #
+ # @see Command
+ # @see commands
+ # @see default_command
+ class CommandParser
+ class << self
+ # @return [Hash{Symbol => Command}] the mapping of command names to
+ # command classes to parse the user command.
+ attr_accessor :commands
+
+ # @return [Symbol] the default command name to use when no options
+ # are specified or
+ attr_accessor :default_command
+ end
+
+ self.commands = SymbolHash[
+ :config => Config,
+ :diff => Diff,
+ :display => Display,
+ :doc => Yardoc,
+ :gems => Gems,
+ :graph => Graph,
+ :help => Help,
+ :list => List,
+ :markups => MarkupTypes,
+ :ri => YRI,
+ :server => Server,
+ :stats => Stats,
+ :i18n => I18n
+ ]
+
+ self.default_command = :doc
+
+ # Convenience method to create a new CommandParser and call {#run}
+ # @return (see #run)
+ def self.run(*args) new.run(*args) end
+
+ def initialize
+ log.show_backtraces = false
+ end
+
+ # Runs the {Command} object matching the command name of the first
+ # argument.
+ # @return [void]
+ def run(*args)
+ unless args == ['--help']
+ if args.empty? || args.first =~ /^-/
+ command_name = self.class.default_command
+ else
+ command_name = args.first.to_sym
+ args.shift
+ end
+ if commands.key?(command_name)
+ return commands[command_name].run(*args)
+ end
+ end
+ list_commands
+ end
+
+ private
+
+ def commands; self.class.commands end
+
+ def list_commands
+ log.puts "Usage: yard <command> [options]"
+ log.puts
+ log.puts "Commands:"
+ commands.keys.sort_by(&:to_s).each do |command_name|
+ command = commands[command_name].new
+ log.puts "%-8s %s" % [command_name, command.description]
+ end
+ end
+ end
+ end
+end