diff options
author | drbrain <drbrain@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2013-07-09 23:21:36 +0000 |
---|---|---|
committer | drbrain <drbrain@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2013-07-09 23:21:36 +0000 |
commit | 47f0248b0858898dd24d1e654cedf174059ca677 (patch) | |
tree | 493e84160f8609db408d88349f0624a3ff92c3c2 /lib/rubygems/gem_runner.rb | |
parent | cd9f9e471977447a991ced4ea38efb2309459ef5 (diff) | |
download | ruby-47f0248b0858898dd24d1e654cedf174059ca677.tar.gz |
* lib/rubygems: Import RubyGems 2.1
* test/rubygems: Ditto.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@41873 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'lib/rubygems/gem_runner.rb')
-rw-r--r-- | lib/rubygems/gem_runner.rb | 26 |
1 files changed, 17 insertions, 9 deletions
diff --git a/lib/rubygems/gem_runner.rb b/lib/rubygems/gem_runner.rb index 8060e15312..7a3fd6b116 100644 --- a/lib/rubygems/gem_runner.rb +++ b/lib/rubygems/gem_runner.rb @@ -33,17 +33,11 @@ class Gem::GemRunner ## # Run the gem command with the following arguments. - 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 + def run args + build_args = extract_build_args args do_configuration args + cmd = @command_manager_class.instance cmd.command_names.each do |command_name| @@ -60,6 +54,20 @@ 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) |