1. Gem::
  2. GemRunner

class Gem::GemRunner

Run an instance of the gem program.

Gem::GemRunner is only intended for internal use by RubyGems itself. It does not form any public API and may change at any time for any reason.

If you would like to duplicate functionality of ‘gem` commands, use the classes they call directly.

Public Class Methods

Source
# File lib/rubygems/gem_runner.rb, line 23definitialize@command_manager_class =Gem::CommandManager@config_file_class =Gem::ConfigFileend

Public Instance Methods

Source
# File lib/rubygems/gem_runner.rb, line 31defrun(args)validate_encodingargsbuild_args =extract_build_argsargsdo_configurationargsbeginGem.load_env_pluginsrescueStandardErrornilendGem.load_pluginscmd =@command_manager_class.instancecmd.command_names.eachdo|command_name|config_args =Gem.configuration[command_name]config_args =caseconfig_argswhenStringconfig_args.split" "elseArray(config_args)endGem::Command.add_specific_extra_argscommand_name,config_argsendcmd.runGem.configuration.args,build_argsend

Run the gem command with the following arguments.

Private Instance Methods

Source
# File lib/rubygems/gem_runner.rb, line 84defdo_configuration(args)Gem.configuration =@config_file_class.new(args)Gem.use_pathsGem.configuration[:gemhome],Gem.configuration[:gempath]Gem::Command.extra_args =Gem.configuration[:gem]end
Source
# File lib/rubygems/gem_runner.rb, line 76defvalidate_encoding(args)invalid_arg =args.find {|arg|!arg.valid_encoding? }ifinvalid_argraiseGem::OptionParser::InvalidArgument.new("'#{invalid_arg.scrub}' has invalid encoding")endend