diff options
Diffstat (limited to 'lib/rubygems/dependency_installer.rb')
-rw-r--r-- | lib/rubygems/dependency_installer.rb | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/lib/rubygems/dependency_installer.rb b/lib/rubygems/dependency_installer.rb index 9ae2659536..beea212818 100644 --- a/lib/rubygems/dependency_installer.rb +++ b/lib/rubygems/dependency_installer.rb @@ -20,8 +20,9 @@ class Gem::DependencyInstaller :force => false, :format_executable => false, # HACK dup :ignore_dependencies => false, + :prerelease => false, :security_policy => nil, # HACK NoSecurity requires OpenSSL. AlmostNo? Low? - :wrappers => true + :wrappers => true, } ## @@ -37,6 +38,7 @@ class Gem::DependencyInstaller # :format_executable:: See Gem::Installer#initialize. # :ignore_dependencies:: Don't install any dependencies. # :install_dir:: See Gem::Installer#install. + # :prerelease:: Allow prerelease versions # :security_policy:: See Gem::Installer::new and Gem::Security. # :user_install:: See Gem::Installer.new # :wrappers:: See Gem::Installer::new @@ -58,6 +60,7 @@ class Gem::DependencyInstaller @force = options[:force] @format_executable = options[:format_executable] @ignore_dependencies = options[:ignore_dependencies] + @prerelease = options[:prerelease] @security_policy = options[:security_policy] @user_install = options[:user_install] @wrappers = options[:wrappers] @@ -90,10 +93,10 @@ class Gem::DependencyInstaller req end - all = requirements.length > 1 || - (requirements.first != ">=" and requirements.first != ">") + all = !@prerelease && (requirements.length > 1 || + (requirements.first != ">=" and requirements.first != ">")) - found = Gem::SpecFetcher.fetcher.fetch dep, all + found = Gem::SpecFetcher.fetcher.fetch dep, all, true, @prerelease gems_and_sources.push(*found) rescue Gem::RemoteFetcher::FetchError => e |