Extended maintenance of Ruby 1.9.3 ended on February 23, 2015. Read more
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.
# File rubygems/gem_runner.rb, line 28 def initialize(options={}) # TODO: nuke these options @command_manager_class = options[:command_manager] || Gem::CommandManager @config_file_class = options[:config_file] || Gem::ConfigFile @doc_manager_class = options[:doc_manager] || Gem::DocManager end
Run the gem command with the following arguments.
# File rubygems/gem_runner.rb, line 38 def run(args) start_time = Time.now if args.include?('--') # We need to preserve the original ARGV to use for passing gem options # to source gems. If there is a -- in the line, strip all options after # it...its for the source building process. build_args = args[args.index("--") + 1...args.length] args = args[0...args.index("--")] end Gem::Command.build_args = build_args if build_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 end_time = Time.now if Gem.configuration.benchmark then printf "\nExecution time: %0.2f seconds.\n", end_time - start_time puts "Press Enter to finish" STDIN.gets end end
Commenting is here to help enhance the documentation. For example, code samples, or clarification of the documentation.
If you have questions about Ruby or the documentation, please post to one of the Ruby mailing lists. You will get better, faster, help that way.
If you wish to post a correction of the docs, please do so, but also file bug report so that it can be corrected for the next release. Thank you.
If you want to help improve the Ruby documentation, please visit Documenting-ruby.org.