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.
When defining a new command subclass, use add_option
to add command-line switches.
Unhandled arguments (gem names, files, etc.) are left in options[:args]
.
Register all the subcommands supported by the gem command.
Create the config file object. args
is the list of arguments from the command line.
The following command line options are handled early here rather than later at the time most command options are processed.
--config-file
, --config-file==NAME
Obviously these need to be handled by the ConfigFile
object to ensure we get the right config file.
--backtrace
Backtrace needs to be turned on early so that errors before normal option parsing can be properly handled.
--debug
Enable Ruby level debug messages. Handled early for the same reason as –backtrace.
Constructs a dependency with name
and requirements
. The last argument can optionally be the dependency type, which defaults to :runtime
.
Creates a new installer instance.
Options are:
Alternate repository path to store .gem files in.
:local, :remote, or :both. :local only searches gems in the current directory. :remote searches only gems in Gem::sources
. :both searches both.
See Gem::Installer::new
.
See Gem::Installer#initialize.
Don’t install any dependencies.
Allow prerelease versions. See install
.
See Gem::Installer::new
and Gem::Security
.
Creates a new DependencyList
. If development
is true, development dependencies will be included.
Creates a new Gem::Doctor
that will clean up gem_repository
. Only one gem repository may be cleaned at a time.
If dry_run
is true no files or directories will be removed.
Creates a new SourceFetchProblem
for the given source
and error
.
Creates a new SpecificGemNotFoundException
for a gem with the given name
and version
. Any errors
encountered when attempting to find the gem are also stored.
Creates a new SystemExitException
with the given exit_code
Creates a new UnsatisfiableDependencyError
for the unsatisfiable Gem::Resolver::DependencyRequest
dep
Create an indexer that will index the gems in directory
.
Constructs an Installer
instance that will install the gem at package
which can either be a path or an instance of Gem::Package. options
is a Hash
with the following keys:
Where to put a bin wrapper if needed.
Whether or not development dependencies should be installed.
Use /usr/bin/env in bin wrappers.
Overrides all version checks and security policy checks, except for a signed-gems-only policy.
Format the executable the same as the Ruby executable. If your Ruby is ruby18, foo_exec will be installed as foo_exec18.
Don’t raise if a dependency is missing.
The directory to install the gem into.
Use the specified security policy. See Gem::Security
Indicate that the gem should be unpacked into the users personal gem directory.
Only validate dependencies against what is in the install_dir
Install wrappers if true, symlinks if false.
An Array of arguments to pass to the extension builder process. If not set, then Gem::Command.build_args
is used
Print gem post install message if true
Creates a new Gem::Package for the file at gem
. gem
can also be provided as an IO
object.
If gem
is an existing file in the old format a Gem::Package::Old
will be returned.
Create a Gem Package task library. Automatically define the gem if a block is given. If no block is supplied, then define
needs to be called to define the task.