Class
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.
Class Methods
lib/rubygems/gem_runner.rb
View on GitHub
# File tmp/rubies/ruby-2.7.6/lib/rubygems/gem_runner.rb, line 29
def initialize(options={})
if !options.empty? && !Gem::Deprecate.skip
Kernel.warn "NOTE: passing options to Gem::GemRunner.new is deprecated with no replacement. It will be removed on or after 2016-10-01."
end
@command_manager_class = options[:command_manager] || Gem::CommandManager
@config_file_class = options[:config_file] || Gem::ConfigFile
end
No documentation available
Instance Methods
lib/rubygems/gem_runner.rb
View on GitHub
# File tmp/rubies/ruby-2.7.6/lib/rubygems/gem_runner.rb, line 78
def do_configuration(args)
Gem.configuration = @config_file_class.new(args)
Gem.use_paths Gem.configuration[:gemhome], Gem.configuration[:gempath]
Gem::Command.extra_args = Gem.configuration[:gem]
end
No documentation available
lib/rubygems/gem_runner.rb
View on GitHub
# File tmp/rubies/ruby-2.7.6/lib/rubygems/gem_runner.rb, line 41
def run(args)
build_args = extract_build_args args
do_configuration args
cmd = @command_manager_class.instance
cmd.command_names.each do |command_name|
config_args = Gem.configuration[command_name]
config_args = case config_args
when String
config_args.split ' '
else
Array(config_args)
end
Gem::Command.add_specific_extra_args command_name, config_args
end
cmd.run Gem.configuration.args, build_args
end
Run the gem command with the following arguments.