diff options
Diffstat (limited to 'lib/rubygems/gem_runner.rb')
-rw-r--r-- | lib/rubygems/gem_runner.rb | 26 |
1 files changed, 9 insertions, 17 deletions
diff --git a/lib/rubygems/gem_runner.rb b/lib/rubygems/gem_runner.rb index 7a3fd6b116..8060e15312 100644 --- a/lib/rubygems/gem_runner.rb +++ b/lib/rubygems/gem_runner.rb @@ -33,11 +33,17 @@ class Gem::GemRunner ## # Run the gem command with the following arguments. - def run args - build_args = extract_build_args args + def run(args) + 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. + # TODO use slice! + build_args = args[args.index("--") + 1...args.length] + args = args[0...args.index("--")] + end do_configuration args - cmd = @command_manager_class.instance cmd.command_names.each do |command_name| @@ -54,20 +60,6 @@ class Gem::GemRunner cmd.run Gem.configuration.args, build_args end - ## - # Separates the build arguments (those following <code>--</code>) from the - # other arguments in the list. - - def extract_build_args args # :nodoc: - return [] unless offset = args.index('--') - - build_args = args.slice!(offset...args.length) - - build_args.shift - - build_args - end - private def do_configuration(args) |