Class: Gem::Command

Class | Gem::Command
In: | lib/rubygems/command.rb
Parent: | Object

Base class for all Gem commands. When creating a new gem command, define arguments, defaults_str, description and usage (as appropriate).

### Methods

add_extra_args add_option arguments begins? defaults_str description execute get_all_gem_names get_one_gem_name get_one_optional_argument handle_options handles? invoke merge_options new remove_option show_help usage when_invoked

### Included Modules

UserInteraction

### Attributes

command | [R] | The name of the command.
defaults | [RW] | The default options for the command.
options | [R] | The options for the command.
program_name | [RW] | The name of the command for command-line invocation.
summary | [RW] | A short description of the command.

### Public Class methods

new(command, summary=nil, defaults={})

Initializes a generic gem command named `command`. `summary` is a short description displayed in `gem help commands`. `defaults` are the default options. Defaults should be mirrored in defaults_str, unless there are none.

Use add_option to add command-line switches.

### Public Instance methods

add_extra_args(args)
add_option(*opts) {|value, options| ...}

Add a command-line option and handler to the command.

See OptionParser#make_switch for an explanation of `opts`.

`handler` will be called with two values, the value of the argument and the options hash.

arguments()

Override to provide details of the arguments a command takes. It should return a left-justified string, one argument per line.

begins?(long, short)

True if `long` begins with the characters from `short`.

defaults_str()

Override to display the default values of the command options. (similar to `arguments`, but displays the default values).

description()

Override to display a longer description of what this command does.

execute()

Override to provide command handling.

get_all_gem_names()

Get all gem names from the command line.

get_one_gem_name()

Get the single gem name from the command line. Fail if there is no gem name or if there is more than one gem name given.

get_one_optional_argument()

Get a single optional argument from the command line. If more than one argument is given, return only the first. Return nil if none are given.

handle_options(args)

Handle the given list of arguments by parsing them and recording the results.

handles?(args)

True if the command handles the given argument list.

invoke(*args)

Invoke the command with the given list of arguments.

merge_options(new_options)

Merge a set of command options with the set of default options (without modifying the default option hash).

remove_option(name)

Remove previously defined command-line argument `name`.

show_help()

Display the help message for the command.

usage()

Override to display the usage for an individual gem command.

when_invoked(&block)

Call the given block when invoked.

Normal command invocations just executes the `execute` method of the command. Specifying an invocation block allows the test methods to override the normal action of a command to determine that it has been invoked correctly.

[Validate]