summaryrefslogtreecommitdiff
path: root/lang/ruby200-base/patches/patch-lib_rubygems_dependency__installer.rb
blob: 977f2205e4db7087f6ba5be88f4ad1637a43cf6c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
$NetBSD: patch-lib_rubygems_dependency__installer.rb,v 1.1 2013/07/21 02:32:58 taca Exp $

* Add install_root option for pkgsrc's rubygems support.

--- lib/rubygems/dependency_installer.rb.orig	2013-03-17 14:51:53.000000000 +0000
+++ lib/rubygems/dependency_installer.rb
@@ -50,6 +50,7 @@ class Gem::DependencyInstaller
   # :format_executable:: See Gem::Installer#initialize.
   # :ignore_dependencies:: Don't install any dependencies.
   # :install_dir:: See Gem::Installer#install.
+  # :install_root:: See Gem::Installer#install.
   # :prerelease:: Allow prerelease versions.  See #install.
   # :security_policy:: See Gem::Installer::new and Gem::Security.
   # :user_install:: See Gem::Installer.new
@@ -57,13 +58,14 @@ class Gem::DependencyInstaller
   # :build_args:: See Gem::Installer::new
 
   def initialize(options = {})
-    @install_dir = options[:install_dir] || Gem.dir
-
     if options[:install_dir] then
+      @install_dir = options[:install_dir]
       # HACK shouldn't change the global settings, needed for -i behavior
       # maybe move to the install command?  See also github #442
       Gem::Specification.dirs = @install_dir
       Gem.ensure_gem_subdirectories @install_dir
+    else
+      @install_dir = Gem.dir
     end
 
     options = DEFAULT_OPTIONS.merge options
@@ -92,7 +94,12 @@ class Gem::DependencyInstaller
     @installed_gems = []
     @toplevel_specs = nil
 
-    @cache_dir = options[:cache_dir] || @install_dir
+    @install_root = options[:install_root] || ""
+    install_dir = @install_dir
+    if not @install_root.empty?
+      install_dir = File.join(@install_root, install_dir)
+    end
+    @cache_dir = options[:cache_dir] || install_dir
 
     # Set with any errors that SpecFetcher finds while search through
     # gemspecs for a dep
@@ -364,6 +371,7 @@ class Gem::DependencyInstaller
                                 :format_executable   => @format_executable,
                                 :ignore_dependencies => @ignore_dependencies,
                                 :install_dir         => @install_dir,
+                                :install_root        => @install_root,
                                 :security_policy     => @security_policy,
                                 :user_install        => @user_install,
                                 :wrappers            => @wrappers,