diff options
Diffstat (limited to 'spec/support/rubygems_ext.rb')
-rw-r--r-- | spec/support/rubygems_ext.rb | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/spec/support/rubygems_ext.rb b/spec/support/rubygems_ext.rb index 5299a7b447..3c8d97b83c 100644 --- a/spec/support/rubygems_ext.rb +++ b/spec/support/rubygems_ext.rb @@ -105,10 +105,14 @@ module Spec end def install_gems(gems) - deps = gems.map {|name, req| "'#{name}:#{req}'" }.join(" ") - gem = ENV["GEM_COMMAND"] || "#{Gem.ruby} -S gem --backtrace" - cmd = "#{gem} install #{deps} --no-document --conservative" - system(cmd) || raise("Installing gems #{deps} for the tests to use failed!") + require "rubygems/dependency_installer" + + gems.each do |name, req| + dependency = Gem::Dependency.new(name, req) + next unless dependency.matching_specs.empty? + + Gem::DependencyInstaller.new(:document => false).install(dependency) + end end end end |