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-4.0.0/lib/rubygems/gem_runner.rb, line 22
def initialize
@command_manager_class = Gem::CommandManager
@config_file_class = Gem::ConfigFile
end
No documentation available
Instance Methods
lib/rubygems/gem_runner.rb
View on GitHub
# File tmp/rubies/ruby-4.0.0/lib/rubygems/gem_runner.rb, line 83
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-4.0.0/lib/rubygems/gem_runner.rb, line 30
def run(args)
validate_encoding args
build_args = extract_build_args args
do_configuration args
begin
Gem.load_env_plugins
rescue StandardError
nil
end
Gem.load_plugins
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.
lib/rubygems/gem_runner.rb
View on GitHub
# File tmp/rubies/ruby-4.0.0/lib/rubygems/gem_runner.rb, line 75
def validate_encoding(args)
invalid_arg = args.find {|arg| !arg.valid_encoding? }
if invalid_arg
raise Gem::OptionParser::InvalidArgument.new("'#{invalid_arg.scrub}' has invalid encoding")
end
end
No documentation available