gemrage 0.1.1 → 0.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (151) hide show
  1. data/Gemfile +2 -0
  2. data/Gemfile.lock +5 -0
  3. data/VERSION +1 -1
  4. data/gemrage.gemspec +148 -3
  5. data/lib/rubygems/commands/scan_command.rb +77 -4
  6. data/vendor/ruby/1.8/bin/rvm-install +19 -0
  7. data/vendor/ruby/1.8/cache/macaddr-1.0.0.gem +0 -0
  8. data/vendor/ruby/1.8/cache/rvm-1.0.14.gem +0 -0
  9. data/vendor/ruby/1.8/gems/macaddr-1.0.0/README +33 -0
  10. data/vendor/ruby/1.8/gems/macaddr-1.0.0/gemspec.rb +27 -0
  11. data/vendor/ruby/1.8/gems/macaddr-1.0.0/install.rb +210 -0
  12. data/vendor/ruby/1.8/gems/macaddr-1.0.0/lib/macaddr.rb +69 -0
  13. data/vendor/ruby/1.8/gems/rvm-1.0.14/LICENCE +18 -0
  14. data/vendor/ruby/1.8/gems/rvm-1.0.14/README +127 -0
  15. data/vendor/ruby/1.8/gems/rvm-1.0.14/bin/rvm-install +5 -0
  16. data/vendor/ruby/1.8/gems/rvm-1.0.14/binscripts/rvm +76 -0
  17. data/vendor/ruby/1.8/gems/rvm-1.0.14/binscripts/rvm-auto-ruby +24 -0
  18. data/vendor/ruby/1.8/gems/rvm-1.0.14/binscripts/rvm-prompt +204 -0
  19. data/vendor/ruby/1.8/gems/rvm-1.0.14/binscripts/rvm-shell +35 -0
  20. data/vendor/ruby/1.8/gems/rvm-1.0.14/binscripts/rvm-update-head +35 -0
  21. data/vendor/ruby/1.8/gems/rvm-1.0.14/binscripts/rvm-update-latest +27 -0
  22. data/vendor/ruby/1.8/gems/rvm-1.0.14/binscripts/rvmsudo +24 -0
  23. data/vendor/ruby/1.8/gems/rvm-1.0.14/config/db +71 -0
  24. data/vendor/ruby/1.8/gems/rvm-1.0.14/config/known +55 -0
  25. data/vendor/ruby/1.8/gems/rvm-1.0.14/config/md5 +87 -0
  26. data/vendor/ruby/1.8/gems/rvm-1.0.14/contrib/gemset_snapshot +25 -0
  27. data/vendor/ruby/1.8/gems/rvm-1.0.14/contrib/install-system-wide +191 -0
  28. data/vendor/ruby/1.8/gems/rvm-1.0.14/contrib/r +44 -0
  29. data/vendor/ruby/1.8/gems/rvm-1.0.14/examples/rvmrc +47 -0
  30. data/vendor/ruby/1.8/gems/rvm-1.0.14/gemsets/default.gems +1 -0
  31. data/vendor/ruby/1.8/gems/rvm-1.0.14/gemsets/global.gems +1 -0
  32. data/vendor/ruby/1.8/gems/rvm-1.0.14/help/alias +46 -0
  33. data/vendor/ruby/1.8/gems/rvm-1.0.14/help/benchmark +17 -0
  34. data/vendor/ruby/1.8/gems/rvm-1.0.14/help/cleanup +23 -0
  35. data/vendor/ruby/1.8/gems/rvm-1.0.14/help/debug +8 -0
  36. data/vendor/ruby/1.8/gems/rvm-1.0.14/help/disk-usage +15 -0
  37. data/vendor/ruby/1.8/gems/rvm-1.0.14/help/docs +22 -0
  38. data/vendor/ruby/1.8/gems/rvm-1.0.14/help/exec +33 -0
  39. data/vendor/ruby/1.8/gems/rvm-1.0.14/help/fetch +5 -0
  40. data/vendor/ruby/1.8/gems/rvm-1.0.14/help/gem +0 -0
  41. data/vendor/ruby/1.8/gems/rvm-1.0.14/help/gemdir +0 -0
  42. data/vendor/ruby/1.8/gems/rvm-1.0.14/help/gemset +0 -0
  43. data/vendor/ruby/1.8/gems/rvm-1.0.14/help/implode +0 -0
  44. data/vendor/ruby/1.8/gems/rvm-1.0.14/help/info +64 -0
  45. data/vendor/ruby/1.8/gems/rvm-1.0.14/help/install +0 -0
  46. data/vendor/ruby/1.8/gems/rvm-1.0.14/help/list +0 -0
  47. data/vendor/ruby/1.8/gems/rvm-1.0.14/help/migrate +15 -0
  48. data/vendor/ruby/1.8/gems/rvm-1.0.14/help/monitor +0 -0
  49. data/vendor/ruby/1.8/gems/rvm-1.0.14/help/notes +0 -0
  50. data/vendor/ruby/1.8/gems/rvm-1.0.14/help/package +0 -0
  51. data/vendor/ruby/1.8/gems/rvm-1.0.14/help/rake +14 -0
  52. data/vendor/ruby/1.8/gems/rvm-1.0.14/help/remove +0 -0
  53. data/vendor/ruby/1.8/gems/rvm-1.0.14/help/repair +23 -0
  54. data/vendor/ruby/1.8/gems/rvm-1.0.14/help/reset +0 -0
  55. data/vendor/ruby/1.8/gems/rvm-1.0.14/help/ruby +84 -0
  56. data/vendor/ruby/1.8/gems/rvm-1.0.14/help/rubygems +11 -0
  57. data/vendor/ruby/1.8/gems/rvm-1.0.14/help/rvmrc +34 -0
  58. data/vendor/ruby/1.8/gems/rvm-1.0.14/help/snapshot +15 -0
  59. data/vendor/ruby/1.8/gems/rvm-1.0.14/help/specs +0 -0
  60. data/vendor/ruby/1.8/gems/rvm-1.0.14/help/srcdir +0 -0
  61. data/vendor/ruby/1.8/gems/rvm-1.0.14/help/tests +0 -0
  62. data/vendor/ruby/1.8/gems/rvm-1.0.14/help/tools +22 -0
  63. data/vendor/ruby/1.8/gems/rvm-1.0.14/help/uninstall +0 -0
  64. data/vendor/ruby/1.8/gems/rvm-1.0.14/help/update +0 -0
  65. data/vendor/ruby/1.8/gems/rvm-1.0.14/help/upgrade +18 -0
  66. data/vendor/ruby/1.8/gems/rvm-1.0.14/help/use +0 -0
  67. data/vendor/ruby/1.8/gems/rvm-1.0.14/help/wrapper +41 -0
  68. data/vendor/ruby/1.8/gems/rvm-1.0.14/install +631 -0
  69. data/vendor/ruby/1.8/gems/rvm-1.0.14/lib/VERSION.yml +4 -0
  70. data/vendor/ruby/1.8/gems/rvm-1.0.14/lib/rvm/capistrano.rb +45 -0
  71. data/vendor/ruby/1.8/gems/rvm-1.0.14/lib/rvm/environment/alias.rb +69 -0
  72. data/vendor/ruby/1.8/gems/rvm-1.0.14/lib/rvm/environment/cleanup.rb +54 -0
  73. data/vendor/ruby/1.8/gems/rvm-1.0.14/lib/rvm/environment/configuration.rb +60 -0
  74. data/vendor/ruby/1.8/gems/rvm-1.0.14/lib/rvm/environment/env.rb +52 -0
  75. data/vendor/ruby/1.8/gems/rvm-1.0.14/lib/rvm/environment/gemset.rb +222 -0
  76. data/vendor/ruby/1.8/gems/rvm-1.0.14/lib/rvm/environment/info.rb +13 -0
  77. data/vendor/ruby/1.8/gems/rvm-1.0.14/lib/rvm/environment/list.rb +124 -0
  78. data/vendor/ruby/1.8/gems/rvm-1.0.14/lib/rvm/environment/rubies.rb +50 -0
  79. data/vendor/ruby/1.8/gems/rvm-1.0.14/lib/rvm/environment/sets.rb +123 -0
  80. data/vendor/ruby/1.8/gems/rvm-1.0.14/lib/rvm/environment/tools.rb +68 -0
  81. data/vendor/ruby/1.8/gems/rvm-1.0.14/lib/rvm/environment/utility.rb +173 -0
  82. data/vendor/ruby/1.8/gems/rvm-1.0.14/lib/rvm/environment/wrapper.rb +23 -0
  83. data/vendor/ruby/1.8/gems/rvm-1.0.14/lib/rvm/environment.rb +64 -0
  84. data/vendor/ruby/1.8/gems/rvm-1.0.14/lib/rvm/errors.rb +31 -0
  85. data/vendor/ruby/1.8/gems/rvm-1.0.14/lib/rvm/install_command_dumper.rb +51 -0
  86. data/vendor/ruby/1.8/gems/rvm-1.0.14/lib/rvm/shell/abstract_wrapper.rb +145 -0
  87. data/vendor/ruby/1.8/gems/rvm-1.0.14/lib/rvm/shell/calculate_rvm_path.sh +26 -0
  88. data/vendor/ruby/1.8/gems/rvm-1.0.14/lib/rvm/shell/result.rb +42 -0
  89. data/vendor/ruby/1.8/gems/rvm-1.0.14/lib/rvm/shell/shell_wrapper.sh +10 -0
  90. data/vendor/ruby/1.8/gems/rvm-1.0.14/lib/rvm/shell/single_shot_wrapper.rb +56 -0
  91. data/vendor/ruby/1.8/gems/rvm-1.0.14/lib/rvm/shell/utility.rb +37 -0
  92. data/vendor/ruby/1.8/gems/rvm-1.0.14/lib/rvm/shell.rb +25 -0
  93. data/vendor/ruby/1.8/gems/rvm-1.0.14/lib/rvm/version.rb +19 -0
  94. data/vendor/ruby/1.8/gems/rvm-1.0.14/lib/rvm.rb +156 -0
  95. data/vendor/ruby/1.8/gems/rvm-1.0.14/man/man1/rvm.1 +385 -0
  96. data/vendor/ruby/1.8/gems/rvm-1.0.14/man/man1/rvm.1.gz +0 -0
  97. data/vendor/ruby/1.8/gems/rvm-1.0.14/rvm.gemspec +184 -0
  98. data/vendor/ruby/1.8/gems/rvm-1.0.14/scripts/alias +225 -0
  99. data/vendor/ruby/1.8/gems/rvm-1.0.14/scripts/aliases +4 -0
  100. data/vendor/ruby/1.8/gems/rvm-1.0.14/scripts/array +32 -0
  101. data/vendor/ruby/1.8/gems/rvm-1.0.14/scripts/base +49 -0
  102. data/vendor/ruby/1.8/gems/rvm-1.0.14/scripts/cd +87 -0
  103. data/vendor/ruby/1.8/gems/rvm-1.0.14/scripts/cleanup +58 -0
  104. data/vendor/ruby/1.8/gems/rvm-1.0.14/scripts/cli +781 -0
  105. data/vendor/ruby/1.8/gems/rvm-1.0.14/scripts/color +49 -0
  106. data/vendor/ruby/1.8/gems/rvm-1.0.14/scripts/completion +151 -0
  107. data/vendor/ruby/1.8/gems/rvm-1.0.14/scripts/db +87 -0
  108. data/vendor/ruby/1.8/gems/rvm-1.0.14/scripts/default +64 -0
  109. data/vendor/ruby/1.8/gems/rvm-1.0.14/scripts/disk-usage +60 -0
  110. data/vendor/ruby/1.8/gems/rvm-1.0.14/scripts/docs +115 -0
  111. data/vendor/ruby/1.8/gems/rvm-1.0.14/scripts/env +46 -0
  112. data/vendor/ruby/1.8/gems/rvm-1.0.14/scripts/environment-convertor +74 -0
  113. data/vendor/ruby/1.8/gems/rvm-1.0.14/scripts/fetch +229 -0
  114. data/vendor/ruby/1.8/gems/rvm-1.0.14/scripts/gemsets +950 -0
  115. data/vendor/ruby/1.8/gems/rvm-1.0.14/scripts/hash +37 -0
  116. data/vendor/ruby/1.8/gems/rvm-1.0.14/scripts/help +46 -0
  117. data/vendor/ruby/1.8/gems/rvm-1.0.14/scripts/hook +23 -0
  118. data/vendor/ruby/1.8/gems/rvm-1.0.14/scripts/info +214 -0
  119. data/vendor/ruby/1.8/gems/rvm-1.0.14/scripts/initialize +29 -0
  120. data/vendor/ruby/1.8/gems/rvm-1.0.14/scripts/install +631 -0
  121. data/vendor/ruby/1.8/gems/rvm-1.0.14/scripts/irbrc +9 -0
  122. data/vendor/ruby/1.8/gems/rvm-1.0.14/scripts/irbrc.rb +63 -0
  123. data/vendor/ruby/1.8/gems/rvm-1.0.14/scripts/list +315 -0
  124. data/vendor/ruby/1.8/gems/rvm-1.0.14/scripts/log +38 -0
  125. data/vendor/ruby/1.8/gems/rvm-1.0.14/scripts/maglev +193 -0
  126. data/vendor/ruby/1.8/gems/rvm-1.0.14/scripts/manage +2094 -0
  127. data/vendor/ruby/1.8/gems/rvm-1.0.14/scripts/match +6 -0
  128. data/vendor/ruby/1.8/gems/rvm-1.0.14/scripts/md5 +22 -0
  129. data/vendor/ruby/1.8/gems/rvm-1.0.14/scripts/migrate +175 -0
  130. data/vendor/ruby/1.8/gems/rvm-1.0.14/scripts/monitor +105 -0
  131. data/vendor/ruby/1.8/gems/rvm-1.0.14/scripts/notes +121 -0
  132. data/vendor/ruby/1.8/gems/rvm-1.0.14/scripts/override_gem +14 -0
  133. data/vendor/ruby/1.8/gems/rvm-1.0.14/scripts/package +301 -0
  134. data/vendor/ruby/1.8/gems/rvm-1.0.14/scripts/patches +64 -0
  135. data/vendor/ruby/1.8/gems/rvm-1.0.14/scripts/patchsets +87 -0
  136. data/vendor/ruby/1.8/gems/rvm-1.0.14/scripts/repair +199 -0
  137. data/vendor/ruby/1.8/gems/rvm-1.0.14/scripts/rubygems +157 -0
  138. data/vendor/ruby/1.8/gems/rvm-1.0.14/scripts/rvm +120 -0
  139. data/vendor/ruby/1.8/gems/rvm-1.0.14/scripts/rvm-install +631 -0
  140. data/vendor/ruby/1.8/gems/rvm-1.0.14/scripts/selector +818 -0
  141. data/vendor/ruby/1.8/gems/rvm-1.0.14/scripts/set +301 -0
  142. data/vendor/ruby/1.8/gems/rvm-1.0.14/scripts/snapshot +262 -0
  143. data/vendor/ruby/1.8/gems/rvm-1.0.14/scripts/tools +58 -0
  144. data/vendor/ruby/1.8/gems/rvm-1.0.14/scripts/update +631 -0
  145. data/vendor/ruby/1.8/gems/rvm-1.0.14/scripts/upgrade +144 -0
  146. data/vendor/ruby/1.8/gems/rvm-1.0.14/scripts/utility +1557 -0
  147. data/vendor/ruby/1.8/gems/rvm-1.0.14/scripts/version +17 -0
  148. data/vendor/ruby/1.8/gems/rvm-1.0.14/scripts/wrapper +210 -0
  149. data/vendor/ruby/1.8/specifications/macaddr-1.0.0.gemspec +27 -0
  150. data/vendor/ruby/1.8/specifications/rvm-1.0.14.gemspec +42 -0
  151. metadata +149 -4
@@ -0,0 +1,818 @@
1
+ #!/usr/bin/env bash
2
+
3
+ # __rvm_select implementation version patch_level
4
+ __rvm_select()
5
+ {
6
+ # Set Variable Defaults
7
+ export GEM_HOME GEM_PATH BUNDLE_PATH MY_RUBY_HOME RUBY_VERSION
8
+
9
+ if [[ -z "${rvm_ruby_string:-""}" ]] ; then
10
+ [[ -n "${rvm_ruby_interpreter:-""}" ]] && rvm_ruby_string="$rvm_ruby_interpreter"
11
+ [[ -n "${rvm_ruby_version:-""}" ]] && rvm_ruby_string="$rvm_ruby_string-$rvm_ruby_version"
12
+ [[ -n "${rvm_ruby_patch_level:-""}" ]] && rvm_ruby_string="$rvm_ruby_string-$rvm_ruby_patch_level"
13
+ [[ -n "${rvm_ruby_revision:-""}" ]] && rvm_ruby_string="$rvm_ruby_string-$rvm_ruby_revision"
14
+ [[ -n "${rvm_ruby_name:-""}" ]] && rvm_ruby_name="$rvm_ruby_string-n$rvm_ruby_name"
15
+ fi
16
+
17
+ __rvm_ruby_string
18
+
19
+ rvm_archive_extension="tar.gz"
20
+
21
+ if [[ -z "${rvm_ruby_interpreter:-""}" ]] ; then
22
+ rvm_ruby_interpreter="${rvm_ruby_string//-*/}"
23
+ fi
24
+
25
+ case "$rvm_ruby_interpreter" in
26
+ macruby)
27
+ if [[ "Darwin" = "$(uname)" ]] ; then
28
+
29
+ rvm_ruby_package_name=${rvm_ruby_interpreter}-${rvm_ruby_version}
30
+
31
+ if [[ ${rvm_head_flag:-0} -eq 1 ]] ; then
32
+ rvm_ruby_version="" ; rvm_ruby_tag=""
33
+ rvm_ruby_revision="head"
34
+ __rvm_db "macruby_repo_url" "rvm_ruby_repo_url"
35
+ rvm_ruby_url="$rvm_ruby_repo_url"
36
+
37
+ elif [[ "nightly" = "${rvm_ruby_version:-""}" ]] ; then
38
+ __rvm_db "macruby_nightly_url" "rvm_ruby_url"
39
+ rvm_ruby_package_name="${rvm_ruby_interpreter}_nightly-${rvm_ruby_version}"
40
+ rvm_ruby_package_file="$rvm_ruby_package_name"
41
+
42
+ else
43
+ __rvm_db "macruby_version" "rvm_ruby_version"
44
+ __rvm_db "macruby_url" "rvm_ruby_url"
45
+ rvm_ruby_package_name="MacRuby%20${rvm_ruby_version}.zip"
46
+ rvm_ruby_package_file="$rvm_ruby_package_name"
47
+ rvm_ruby_url="$rvm_ruby_url/$rvm_ruby_package_name"
48
+ fi
49
+ rvm_ruby_patch_level=""
50
+ else
51
+ "$rvm_path/scripts/log" "fail" "MacRuby can only be installed on a Darwin OS."
52
+ fi
53
+ ;;
54
+
55
+ rbx|rubinius)
56
+ rvm_archive_extension="tar.gz"
57
+ rvm_ruby_interpreter="rbx"
58
+ rvm_ruby_version=${rvm_ruby_version:-$(__rvm_db "rbx_version")}
59
+ rvm_ruby_repo_url=${rvm_rbx_repo_url:-$(__rvm_db "rubinius_repo_url")}
60
+
61
+ if [[ ${rvm_head_flag:-0} -eq 0 ]] ; then
62
+ rvm_ruby_patch_level=${rvm_ruby_patch_level:-$(__rvm_db "rbx_patch_level")}
63
+ rvm_ruby_string="${rvm_ruby_string/-prc/-rc}"
64
+ rvm_ruby_string="$(echo "$rvm_ruby_string" | sed 's#-p*#-#')"
65
+ rvm_ruby_package_file="$(echo "rubinius-${rvm_ruby_version}-${rvm_ruby_patch_level}.${rvm_archive_extension}" | sed 's#-p*#-#' )"
66
+ __rvm_db "rbx_url" "rvm_ruby_url"
67
+ rvm_ruby_url="$rvm_ruby_url/$rvm_ruby_package_file"
68
+
69
+ else
70
+ rvm_ruby_patch_level="" ; rvm_ruby_version=""
71
+ fi
72
+ ;;
73
+
74
+ jruby)
75
+ rvm_ruby_patch_level=""
76
+
77
+ if [[ ${rvm_head_flag:-0} -eq 1 ]] ; then
78
+ rvm_ruby_version="head"
79
+ rvm_ruby_repo_url="${rvm_ruby_repo_url:-$(__rvm_db "jruby_repo_url")}"
80
+ rvm_ruby_url="${rvm_ruby_repo_url:-$(__rvm_db "jruby_repo_url")}"
81
+
82
+ else
83
+ rvm_archive_extension="tar.gz"
84
+ rvm_ruby_version="${rvm_ruby_version:-"$(__rvm_db "jruby_version")"}"
85
+ jruby_url="$(__rvm_db "jruby_url")"
86
+ rvm_ruby_package_file="${rvm_ruby_interpreter}-bin-${rvm_ruby_version}"
87
+ rvm_ruby_package_name="${rvm_ruby_interpreter}-${rvm_ruby_version}"
88
+ rvm_ruby_url="${jruby_url}/${rvm_ruby_version}/${rvm_ruby_package_file}.tar.gz"
89
+ jruby_url=""
90
+ fi
91
+
92
+ alias jruby_ng="jruby --ng"
93
+ alias jruby_ng_server="jruby --ng-server"
94
+ ;;
95
+
96
+ maglev)
97
+ rvm_ruby_patch_level=""
98
+ maglev_url="$(__rvm_db "maglev_url")"
99
+
100
+ if [[ ${rvm_head_flag:-0} -eq 1 ]] ; then
101
+ rvm_ruby_version="head"
102
+ rvm_ruby_repo_url="${rvm_ruby_repo_url:-$(__rvm_db "maglev_repo_url")}"
103
+ rvm_ruby_url="${rvm_ruby_repo_url:-$(__rvm_db "maglev_repo_url")}"
104
+
105
+ else
106
+ system="$(uname -s)"
107
+ arch="$(uname -m)"
108
+ rvm_ruby_package_file="MagLev-${rvm_ruby_version}.${system}-${arch}"
109
+ rvm_gemstone_package_file="GemStone-${rvm_ruby_version}.${system}-${arch}"
110
+ rvm_ruby_version="${rvm_ruby_version:-"$(__rvm_db "maglev_version")"}"
111
+ rvm_ruby_package_name="${rvm_ruby_interpreter}-${rvm_ruby_version}"
112
+ rvm_ruby_url="${rvm_ruby_url:-"$maglev_url/${rvm_ruby_package_file}.${rvm_archive_extension}"}"
113
+ rvm_gemstone_url="${rvm_gemstone_url:-"$maglev_url/${rvm_gemstone_package_file}.${rvm_archive_extension}"}"
114
+ export MAGLEV_HOME="$rvm_path/rubies/$rvm_ruby_string"
115
+ fi
116
+ ;;
117
+
118
+ ironruby)
119
+ rvm_ruby_patch_level=""
120
+
121
+ if [[ ${rvm_head_flag:-0} -eq 1 ]] ; then
122
+ rvm_ruby_version="head"
123
+ rvm_ruby_package_name="${rvm_ruby_string}"
124
+ rvm_ruby_repo_url="${rvm_ruby_repo_url:-$(__rvm_db "ironruby_repo_url")}"
125
+ rvm_ruby_url="${rvm_ruby_repo_url:-$(__rvm_db "ironruby_repo_url")}"
126
+
127
+ else
128
+ rvm_archive_extension="zip"
129
+ rvm_ruby_version=${rvm_ruby_version:-"$(__rvm_db "ironruby_version")"}
130
+ rvm_ruby_package_name="${rvm_ruby_interpreter}-${rvm_ruby_version}"
131
+ rvm_ruby_package_file="${rvm_ruby_interpreter}-${rvm_ruby_version}.${rvm_archive_extension}"
132
+ rvm_ruby_url="$(__rvm_db "ironruby_${rvm_ruby_version}_url")${rvm_ruby_package_file}"
133
+ fi
134
+
135
+ export rvm_ruby_version rvm_ruby_string rvm_ruby_package_name rvm_ruby_repo_url rvm_ruby_url rvm_archive_extension
136
+ ;;
137
+
138
+ ree)
139
+ rvm_ruby_interpreter=ree
140
+ rvm_ruby_version=${rvm_ruby_version:-"$(__rvm_db "ree_version")"}
141
+
142
+ if [[ -n "${rvm_ruby_patch_level:-0}" ]] ; then
143
+ rvm_ruby_patch_level="$(echo $rvm_ruby_patch_level | sed 's#^p##')"
144
+ fi
145
+
146
+ if [[ ${rvm_head_flag:-0} -eq 0 ]] ; then
147
+
148
+ if [[ -n "${rvm_ruby_revision:-""}" ]] ; then
149
+ rvm_ruby_patch_level="" ; rvm_ruby_package_file=""
150
+ rvm_ruby_package_name="ree-$rvm_ruby_version-$rvm_ruby_revision"
151
+
152
+ else
153
+ rvm_ruby_package_file="ruby-enterprise-$rvm_ruby_version-$rvm_ruby_patch_level"
154
+ rvm_ruby_url="$(__rvm_db "${rvm_ruby_interpreter}_${rvm_ruby_version}_url")/$rvm_ruby_package_file.tar.gz"
155
+ fi
156
+ fi
157
+
158
+ if ! "$rvm_path/scripts/match" "$rvm_ruby_version" "^1\.8" ; then
159
+ "$rvm_path/scripts/log" "fail" "Unknown Ruby Enterprise Edition version: $rvm_ruby_version"
160
+ fi
161
+ ;;
162
+
163
+ mput|shyouhei)
164
+ rvm_ruby_interpreter="mput"
165
+ rvm_ruby_version="head"
166
+ rvm_ruby_string=$(echo $rvm_ruby_string | sed -e 's/shyouhei/mput/g')
167
+ rvm_ruby_patch_level=""
168
+ rvm_ruby_repo_url=${rvm_mput_repo_url:-"$(__rvm_db "shyouhei_repo_url")"}
169
+ rvm_ruby_url=$rvm_ruby_repo_url
170
+ rvm_ruby_configure="" ; rvm_ruby_make="" ; rvm_ruby_make_install=""
171
+ ;;
172
+
173
+ ruby)
174
+ if [[ -z "${rvm_ruby_version:-""}" && ${rvm_head_flag:-0} -eq 0 ]]; then
175
+ "$rvm_path/scripts/log" "fail" "Ruby version was not specified!"
176
+
177
+ else
178
+ rvm_ruby_repo_url="${rvm_ruby_repo_url:-"$(__rvm_db "ruby_repo_url")"}"
179
+
180
+ if [[ ${rvm_head_flag:-0} -eq 0 ]]; then
181
+ rvm_archive_extension="tar.bz2"
182
+ fi
183
+ fi
184
+ ;;
185
+
186
+ current)
187
+ ruby_binary="$(command -v ruby)"
188
+
189
+ if [[ $? -eq 0 ]] && "$rvm_path/scripts/match" "$ruby_binary" "rvm" ; then
190
+ rvm_ruby_string="$(dirname "$ruby_binary" | xargs dirname | xargs basename)"
191
+
192
+ else
193
+ rvm_ruby_interpreter="system"
194
+ fi
195
+ ;;
196
+
197
+ default|system|user)
198
+ # no-op?
199
+ ;;
200
+
201
+ *)
202
+ if [[ -n "${MY_RUBY_HOME:-""}" ]] ; then
203
+ rvm_ruby_string=$(basename $MY_RUBY_HOME)
204
+ __rvm_select
205
+
206
+ else
207
+ if [[ -z "${rvm_ruby_string:-""}" ]] ; then
208
+ "$rvm_path/scripts/log" "fail" "Ruby implementation '$rvm_ruby_interpreter' is not known."
209
+ return 1
210
+ fi
211
+ fi
212
+ esac
213
+
214
+ __rvm_gemset_select
215
+
216
+ if [[ -n "$rvm_ruby_interpreter" && "system" != "$rvm_ruby_interpreter" && "default" != "$rvm_ruby_interpreter" ]] ; then
217
+
218
+ if [[ ! -z "$rvm_ruby_version" ]] ; then
219
+ rvm_ruby_release_version="${rvm_ruby_version/.*/}"
220
+ rvm_ruby_major_version=${rvm_ruby_version%.*} ; rvm_ruby_major_version=${rvm_ruby_major_version#*.}
221
+ rvm_ruby_minor_version="${rvm_ruby_version//*.}"
222
+ fi
223
+
224
+ rvm_ruby_package_name="${rvm_ruby_package_name:-${rvm_ruby_string//-n*}}"
225
+ rvm_ruby_home="$rvm_path/rubies/$rvm_ruby_string"
226
+ rvm_ruby_binary="$rvm_ruby_home/bin/ruby"
227
+ rvm_ruby_irbrc="$rvm_ruby_home/.irbrc"
228
+
229
+ if [[ "maglev" = "$rvm_ruby_interpreter" ]] ; then
230
+ export MAGLEV_HOME="$rvm_ruby_home"
231
+ export GEMSTONE_GLOBAL_DIR=$MAGLEV_HOME
232
+ fi
233
+
234
+ rvm_ruby_gem_home="${rvm_gems_path:-"$rvm_path/gems"}/${rvm_ruby_string}"
235
+
236
+ if [[ -n "$rvm_gemset_name" ]] ; then
237
+ rvm_ruby_gem_home="${rvm_ruby_gem_home}${rvm_gemset_separator:-"@"}${rvm_gemset_name}"
238
+ rvm_ruby_gem_path="${rvm_ruby_gem_home}:${rvm_gems_path:-"$rvm_path/gems"}/${rvm_ruby_string}${rvm_gemset_separator:-"@"}global"
239
+ fi
240
+
241
+ rvm_ruby_global_gems_path="${rvm_ruby_gem_home%%${rvm_gemset_separator:-"@"}*}${rvm_gemset_separator:-"@"}global"
242
+ rvm_ruby_gem_path="${rvm_ruby_gem_home}:${rvm_ruby_global_gems_path}"
243
+
244
+ rvm_ruby_selected_flag=1
245
+
246
+ if [[ ! -d "{rvm_log_path:-"$rvm_path/log"}/$rvm_ruby_string" ]] ; then
247
+ \mkdir -p "${rvm_log_path:-"$rvm_path/log"}/$rvm_ruby_string"
248
+ fi
249
+
250
+ export rvm_action rvm_alias_expanded rvm_archflags rvm_archive_extension rvm_bin_flag rvm_bin_path rvm_clang_flag rvm_configure_flags rvm_debug_flag rvm_default_flag rvm_delete_flag rvm_docs_type rvm_dump_environment_flag rvm_error_message rvm_expanding_aliases rvm_file_name rvm_gemdir_flag rvm_gemset_name rvm_gemstone_package_file rvm_gemstone_url rvm_head_flag rvm_hook rvm_install_arguments rvm_install_on_use_flag rvm_interactive_flag rvm_llvm_flag rvm_loaded_flag rvm_make_flags rvm_niceness rvm_nightly_flag rvm_only_path_flag rvm_parse_break rvm_patch_names rvm_patch_original_pwd rvm_pretty_print_flag rvm_prior_cc rvm_proxy rvm_quiet_flag rvm_ree_options rvm_reload_flag rvm_remove_flag rvm_ruby_alias rvm_ruby_aliases rvm_ruby_args rvm_ruby_binary rvm_ruby_bits rvm_ruby_configure rvm_ruby_file rvm_ruby_gem_home rvm_ruby_gem_path rvm_ruby_global_gems_path rvm_ruby_home rvm_ruby_interpreter rvm_ruby_irbrc rvm_ruby_load_path rvm_ruby_major_version rvm_ruby_make rvm_ruby_make_install rvm_ruby_minor_version rvm_ruby_mode rvm_ruby_name rvm_ruby_package_file rvm_ruby_package_name rvm_ruby_patch rvm_ruby_patch_level rvm_ruby_release_version rvm_ruby_repo_url rvm_ruby_require rvm_ruby_revision rvm_ruby_selected_flag rvm_ruby_sha rvm_ruby_string rvm_ruby_strings rvm_ruby_tag rvm_ruby_url rvm_ruby_user_tag rvm_ruby_version rvm_script_name rvm_sdk rvm_silent_flag rvm_sticky_flag rvm_system_flag rvm_token rvm_trace_flag rvm_use_flag rvm_user_flag rvm_verbose_flag rvm_wrapper_name
251
+
252
+ else
253
+ rvm_ruby_interpreter="${rvm_ruby_interpreter:-system}"
254
+ fi
255
+ }
256
+
257
+ __rvm_use()
258
+ {
259
+ local new_path binary full_binary_path rvm_ruby_gem_home
260
+
261
+ #if [[ ${rvm_ruby_selected_flag:-0} -eq 0 ]] ; then __rvm_select "$@" ; fi
262
+ __rvm_select "$@"
263
+
264
+ if [[ -z "${rvm_ruby_interpreter:-""}" ]] ; then rvm_ruby_interpreter="system" ; fi
265
+
266
+ if [[ "system" = "$rvm_ruby_interpreter" ]] ; then
267
+
268
+ unset GEM_HOME GEM_PATH BUNDLE_PATH MY_RUBY_HOME RUBY_VERSION IRBRC
269
+
270
+ new_path="$(__rvm_remove_rvm_from_path ; printf "$PATH"):${rvm_bin_path:-"$rvm_path/bin"}"
271
+
272
+ if [[ -s "$rvm_path/config/system" ]] ; then
273
+
274
+ \grep "MY_RUBY_HOME='$rvm_path/rubies" "$rvm_path/config/system" > /dev/null
275
+
276
+ if [[ $? -eq 0 ]] ; then
277
+ # 'system' should *not* point to an rvm ruby.
278
+ [[ -f "$rvm_path/config/system" ]] && \rm -f "$rvm_path/config/system"
279
+ else
280
+ source "$rvm_path/config/system"
281
+ fi
282
+ fi
283
+
284
+ # Check binaries, remove under the condition they're symlinks.
285
+ if [[ ${rvm_selfcontained:-1} -eq 0 ]] ; then
286
+
287
+ for binary in ruby gem irb ri rdoc rake erb testrb ; do
288
+
289
+ full_binary_path="${rvm_bin_path:-"$rvm_path/bin"}/$binary"
290
+
291
+ [[ -L "$full_binary_path" ]] && \rm -f "$full_binary_path"
292
+
293
+ done
294
+
295
+ fi
296
+
297
+ if [[ ${rvm_verbose_flag:-0} -gt 0 ]] ; then
298
+ "$rvm_path/scripts/log" "info" "Now using system ruby."
299
+ fi
300
+
301
+ __rvm_remove_rvm_from_path
302
+
303
+ new_path="$PATH:${rvm_bin_path:-"$rvm_path/bin"}"
304
+
305
+ export rvm_ruby_string="system"
306
+
307
+ else
308
+ GEM_HOME="$rvm_ruby_gem_home"
309
+ GEM_PATH="$rvm_ruby_gem_home:$rvm_ruby_global_gems_path"
310
+ BUNDLE_PATH="$rvm_ruby_gem_home"
311
+ MY_RUBY_HOME="$rvm_ruby_home"
312
+ RUBY_VERSION="$rvm_ruby_string"
313
+ IRBRC="$rvm_ruby_irbrc"
314
+
315
+ export GEM_HOME GEM_PATH BUNDLE_PATH MY_RUBY_HOME RUBY_VERSION IRBRC
316
+
317
+ IRBRC=${IRBRC:-""} ; if [[ -z "$IRBRC" ]] ; then unset IRBRC ; fi
318
+
319
+ if [[ ! -d "$MY_RUBY_HOME" ]] ; then
320
+ "$rvm_path/scripts/log" "warn" \
321
+ "$rvm_ruby_interpreter $rvm_ruby_string is not installed."
322
+
323
+ if [[ ${rvm_install_on_use_flag:-0} -eq 1 ]] ; then
324
+ "$rvm_path/scripts/manage" "install" "$rvm_ruby_string"
325
+ else
326
+ "$rvm_path/scripts/log" "info" \
327
+ "To install do: 'rvm install $rvm_ruby_string'"
328
+ return 1
329
+ fi
330
+ fi
331
+
332
+ # Ensure the environment file for the selected ruby exists.
333
+ __rvm_ensure_has_environment_files
334
+
335
+ [[ ${rvm_verbose_flag:-0} -gt 0 ]] && \
336
+ "$rvm_path/scripts/log" "info" \
337
+ "Using ${GEM_HOME/${rvm_gemset_separator:-'@'}/ with gemset }"
338
+
339
+ new_path="$GEM_HOME/bin:$rvm_ruby_global_gems_path/bin:$MY_RUBY_HOME/bin:${rvm_bin_path:-"$rvm_path/bin"}:$(__rvm_remove_rvm_from_path ; printf "$PATH")"
340
+ fi
341
+
342
+ # Export ruby string and gem set me for extrenal scripts to take advantage of them.
343
+ if [[ -n "${rvm_ruby_string:-""}" ]] ; then
344
+ export rvm_ruby_string
345
+ fi
346
+
347
+ if [[ -n "${rvm_gemset_name:-""}" ]] ; then
348
+ export rvm_gemset_name
349
+ fi
350
+
351
+ if [[ -n "$new_path" ]]; then
352
+ export PATH="$new_path"
353
+ unset new_path
354
+ builtin hash -r
355
+ fi
356
+
357
+ if [[ "$rvm_ruby_string" != "system" ]] ; then
358
+
359
+ if [[ ${rvm_rvmrc_flag:-0} -eq 1 ]] ; then __rvm_set_rvmrc ; fi
360
+
361
+ local environment_id="$(__rvm_environment_identifier)"
362
+
363
+ if [[ ${rvm_default_flag:-0} -eq 1 && "default" != "${rvm_ruby_interpreter:-""}" ]] ; then
364
+
365
+ if [[ ${rvm_selfcontained:-""} -eq 0 ]] ; then
366
+ # Sets up the default wrappers.
367
+ "$rvm_path/scripts/wrapper" "$rvm_ruby_string" --no-prefix
368
+ else
369
+ "$rvm_path/scripts/wrapper" "$rvm_ruby_string" "default"
370
+ fi
371
+
372
+ if [[ "system" = "$rvm_ruby_interpreter" ]] ; then
373
+ "$rvm_path/scripts/alias" delete default &> /dev/null
374
+ \find "${rvm_bin_path:-"$rvm_path/bin"}" -name 'default_*' -maxdepth 0 -delete
375
+ \rm -f "$rvm_path/config/default"
376
+ \rm -f "$rvm_path/environments/default"
377
+ \rm -rf "$rvm_path/wrappers/default"
378
+
379
+ else
380
+ RUBY_VERSION="$("$rvm_ruby_home/bin/ruby" -v | sed 's#^\(.*\) (.*$#\1#')"
381
+ export GEM_HOME GEM_PATH BUNDLE_PATH MY_RUBY_HOME RUBY_VERSION
382
+ "$rvm_path/scripts/alias" delete default &> /dev/null
383
+ "$rvm_path/scripts/alias" create default "$environment_id" >& /dev/null
384
+ \ln -nfs "$rvm_path/environments/$environment_id" "$rvm_path/environments/default"
385
+ \ln -nfs "$rvm_path/wrappers/$environment_id" "$rvm_path/wrappers/default"
386
+ fi
387
+ fi
388
+
389
+ rvm_default_flag=0
390
+
391
+ if [[ -n "${rvm_wrapper_name:-""}" ]] ; then
392
+ "$rvm_path/scripts/wrapper" "$environment_id" "$rvm_wrapper_name" > /dev/null 2>&1
393
+ rvm_wrapper_name=""
394
+ fi
395
+
396
+ if [[ -n "${rvm_ruby_alias:-""}" ]]; then
397
+ "$rvm_path/scripts/log" "info" "Attempting to alias $environment_id to $rvm_ruby_alias"
398
+ "$rvm_path/scripts/alias" delete "$rvm_ruby_alias" > /dev/null 2>&1
399
+ rvm_alias_expanded=1 "$rvm_path/scripts/alias" create "$rvm_ruby_alias" "$environment_id" > /dev/null 2>&1
400
+ ruby_alias="" ; rvm_ruby_alias=""
401
+ fi
402
+
403
+ if [[ "maglev" = "${rvm_ruby_interpreter:-""}" ]] ; then
404
+ export MAGLEV_HOME="$rvm_ruby_home"
405
+ export GEMSTONE_GLOBAL_DIR=$MAGLEV_HOME
406
+ if [[ -x "$MAGLEV_HOME/gemstone/bin/gslist" ]] ; then
407
+ "$MAGLEV_HOME/gemstone/bin/gslist" -clv > /dev/null 2>&1 ; result=$?
408
+ if [[ $result -eq 1 ]] ; then "$rvm_ruby_home/bin/maglev" start ; fi
409
+ fi
410
+ fi
411
+ fi
412
+
413
+ rvm_hook="after_use" ; source "$rvm_path/scripts/hook"
414
+
415
+ return 0
416
+ }
417
+
418
+ __rvm_ruby_string()
419
+ {
420
+ # rvm_ruby_string may designate any of the following items:
421
+ # * rvm_gemset_name
422
+ # * rvm_ruby_interpreter
423
+ # * rvm_ruby_version
424
+ # * rvm_ruby_patch_level
425
+ # * rvm_ruby_revision
426
+ # * rvm_ruby_tag
427
+
428
+ rvm_expanding_aliases=${rvm_expanding_aliases:-0}
429
+
430
+ rvm_ruby_version=${rvm_ruby_version:-""}
431
+ rvm_gemset_name=${rvm_gemset_name:-""}
432
+ rvm_ruby_interpreter=${rvm_ruby_interpreter:-""}
433
+ rvm_ruby_version=${rvm_ruby_version:-""}
434
+ rvm_ruby_patch_level=${rvm_ruby_patch_level:-""}
435
+ rvm_ruby_revision=${rvm_ruby_revision:-""}
436
+ rvm_ruby_tag=${rvm_ruby_tag:-""}
437
+
438
+ # Alias'd rubies
439
+ if [[ ${rvm_expanding_aliases:-0} -eq 0 && -n ${rvm_ruby_string:-""} && $rvm_ruby_string != "system" ]]; then
440
+ if expanded_alias_name="$("$rvm_path/scripts/alias" show "$rvm_ruby_string" 2>/dev/null)" && [[ -n "$expanded_alias_name" ]] ; then
441
+ rvm_ruby_string="$expanded_alias_name"
442
+ elif [[ "$rvm_ruby_string" = default ]]; then
443
+ # Default is not a known value. Instead, we need to therefore set it to system.
444
+ rvm_ruby_string="system"
445
+ fi
446
+ fi
447
+
448
+ if echo "$rvm_ruby_string" | \grep -q "${rvm_gemset_separator:-"@"}" ; then
449
+ rvm_gemset_name="${rvm_ruby_string/*${rvm_gemset_separator:-"@"}/}"
450
+ rvm_ruby_string="${rvm_ruby_string/${rvm_gemset_separator:-"@"}*/}"
451
+ rvm_sticky_flag=1
452
+ fi
453
+
454
+ ruby_string=${rvm_ruby_string/${rvm_gemset_separator:-"@"}*/}
455
+
456
+ __rvm_unset_ruby_variables
457
+
458
+ rvm_ruby_string=${rvm_ruby_string:-""}
459
+
460
+ strings=($(echo ${ruby_string//-/ }))
461
+
462
+ if [[ ${#strings[@]} -eq 0 ]] ; then
463
+
464
+ if echo "${GEM_HOME:-""}" | grep -q "rvm" ; then
465
+ # Current Ruby
466
+ strings="${GEM_HOME##*\/}"
467
+ strings="${strings/%${rvm_gemset_separator:-"@"}*}"
468
+ rvm_ruby_string="$strings"
469
+ strings=(${strings//-/ })
470
+ else
471
+ strings=(system)
472
+ rvm_ruby_string="system"
473
+ fi
474
+ fi
475
+
476
+ for string in "${strings[@]:-""}" ; do
477
+
478
+ # TODO: case...
479
+
480
+ case "$string" in
481
+ head)
482
+
483
+ rvm_ruby_revision="head"
484
+ rvm_ruby_patch_level="" ; rvm_ruby_revision="" ; rvm_ruby_tag=""
485
+ export rvm_head_flag=1
486
+ ;;
487
+
488
+ system)
489
+ rvm_ruby_interpreter="system"
490
+ rvm_ruby_patch_level="" ; rvm_ruby_tag="" ; rvm_head_flag=0 ; rvm_ruby_revision="" ; rvm_ruby_version="" ; rvm_gemset_name=""
491
+ return 0
492
+ ;;
493
+
494
+ nightly)
495
+ rvm_ruby_version="nightly"
496
+ rvm_nightly_flag=1
497
+ break
498
+ ;;
499
+
500
+ preview*)
501
+ rvm_ruby_patch_level="$string"
502
+ ;;
503
+
504
+ rc[[:digit:]]*)
505
+ rvm_ruby_patch_level="$string"
506
+ ;;
507
+
508
+ [[:digit:]]\.[[:digit:]]*)
509
+ rvm_ruby_version="$string"
510
+ rvm_ruby_revision=""
511
+ rvm_ruby_tag=""
512
+ ;;
513
+
514
+ p[[:digit:]]*)
515
+ rvm_ruby_patch_level="$string"
516
+ ;;
517
+
518
+ #elif [[ -n "${rvm_ruby_version:-""}" ]] && "$rvm_path/scripts/match" "$string" "^
519
+ [[:digit:]][[:digit:]]*)
520
+
521
+ case "${rvm_ruby_interpreter:-""}" in
522
+ ree)
523
+ rvm_ruby_patch_level="$string"
524
+ rvm_ruby_revision=""
525
+ ;;
526
+
527
+ rbx)
528
+ rvm_ruby_patch_level="$string"
529
+ ;;
530
+
531
+ maglev)
532
+ rvm_ruby_version="$string"
533
+ rvm_ruby_revision=""
534
+ rvm_ruby_patch_level=""
535
+ ;;
536
+
537
+ *)
538
+ rvm_ruby_revision="r$string"
539
+ ;;
540
+ esac
541
+ ;;
542
+
543
+ r[[:digit:]]*)
544
+ rvm_ruby_patch_level=""
545
+ rvm_ruby_revision="$string"
546
+ ;;
547
+
548
+ s[[:digit:]]*)
549
+ rvm_ruby_revision=""
550
+ rvm_ruby_sha="$string"
551
+ ;;
552
+
553
+ tv[[:digit:]]* | t[[:digit:]]*)
554
+ rvm_ruby_patch_level="" ; rvm_ruby_revision=""
555
+ rvm_ruby_tag="$string"
556
+ ;;
557
+
558
+ m[[:digit:]]*)
559
+ rvm_ruby_mode="$string"
560
+ ;;
561
+
562
+ u[[:alnum:]]*)
563
+ rvm_ruby_patch_level="" ; rvm_ruby_revision="" ; rvm_ruby_tag="" ; rvm_ruby_patch=""
564
+ rvm_ruby_user_tag="$string"
565
+ ;;
566
+
567
+ b[[:digit:]][[:digit:]]*)
568
+ rvm_ruby_bits="$string"
569
+ ;;
570
+
571
+ n*)
572
+ rvm_ruby_name="${string/n/}"
573
+ ;;
574
+
575
+ ruby|rbx|jruby|macruby|ree|rubinius|maglev|mput|shyouhei|ironruby)
576
+ rvm_ruby_interpreter="$string"
577
+ ;;
578
+
579
+ *)
580
+ "$rvm_path/scripts/log" "error" \
581
+ "Unknown ruby string component: '$string'"
582
+ return 1
583
+ ;;
584
+ esac
585
+ done
586
+
587
+ if [[ -z "${rvm_ruby_interpreter:-""}" ]] ; then
588
+ # Detect interpreter based on version.
589
+ case "$rvm_ruby_version" in
590
+ 1.[8-9]*) rvm_ruby_interpreter="ruby" ;;
591
+ 0.[5-6]*) rvm_ruby_interpreter="macruby" ;;
592
+ 1.[2-7]*) rvm_ruby_interpreter="jruby" ;;
593
+ esac
594
+ fi
595
+
596
+ # Unspecified version
597
+ rvm_ruby_version=${rvm_ruby_version:-""}
598
+ if [[ -z "${rvm_ruby_version:-""}" && ${rvm_head_flag:-0} -eq 0 ]] ; then
599
+ rvm_ruby_version=${rvm_ruby_version:-"$(__rvm_db "${rvm_ruby_interpreter}_version")"}
600
+ fi
601
+
602
+ if [[ -z "${rvm_ruby_version:-""}" ]] ; then
603
+ rvm_ruby_string="${rvm_ruby_interpreter}"
604
+ else
605
+ rvm_ruby_string="${rvm_ruby_interpreter}-${rvm_ruby_version}"
606
+ fi
607
+
608
+ # Head
609
+ if [[ ${rvm_head_flag:-0} -eq 1 ]] ; then
610
+ rvm_ruby_string="${rvm_ruby_string}-head"
611
+
612
+ elif [[ -n "${rvm_ruby_revision:-""}" ]] ; then
613
+ rvm_ruby_string="${rvm_ruby_string}-${rvm_ruby_revision}"
614
+
615
+ elif [[ -n "${rvm_ruby_tag:-""}" ]] ; then
616
+ rvm_ruby_string="${rvm_ruby_string}-${rvm_ruby_tag}"
617
+
618
+ elif [[ -n "${rvm_ruby_patch_level:-""}" ]] ; then
619
+ rvm_ruby_string="${rvm_ruby_string}-${rvm_ruby_patch_level}"
620
+
621
+ elif [[ -n "${rvm_ruby_user_tag:-""}" ]] ; then
622
+ rvm_ruby_string="${rvm_ruby_string}-${rvm_ruby_user_tag}"
623
+
624
+ else
625
+ patch_level="$(__rvm_db "${rvm_ruby_interpreter}_${rvm_ruby_version}_patch_level")"
626
+
627
+ if [[ -n "${patch_level:-""}" ]] ; then
628
+
629
+ if [[ "ree" = "$rvm_ruby_interpreter" ]] || [[ "rbx" = "$rvm_ruby_interpreter" ]] ; then
630
+ rvm_ruby_patch_level="${patch_level}"
631
+ else
632
+ rvm_ruby_patch_level="p${patch_level}"
633
+ fi
634
+ fi
635
+
636
+ if [[ -n "${rvm_ruby_patch_level:-""}" ]] ; then
637
+
638
+ rvm_ruby_patch_level="${rvm_ruby_patch_level/#pp/p}"
639
+ rvm_ruby_string="${rvm_ruby_string}-${rvm_ruby_patch_level}"
640
+
641
+ if [[ "ree" = "${rvm_ruby_interpreter:-""}" || "rbx" = "${rvm_ruby_interpreter:-""}" ]] ; then
642
+ rvm_ruby_string="${rvm_ruby_string//-p*/-}"
643
+
644
+ else
645
+ rvm_ruby_string="${rvm_ruby_string//-pp/-p}"
646
+ rvm_ruby_string="${rvm_ruby_string//-prc/-rc}"
647
+ fi
648
+ fi
649
+ fi
650
+
651
+ if [[ -n "${rvm_ruby_name:-""}" ]] ; then
652
+ rvm_ruby_string="${rvm_ruby_string}-n${rvm_ruby_name}"
653
+ fi
654
+ }
655
+
656
+ # Select a gemset based on CLI set options and environment.
657
+ # This only sets 'rvm_ruby_gem_home'
658
+ __rvm_gemset_select()
659
+ {
660
+ command -v gem > /dev/null
661
+ if [[ $? -gt 0 ]] ; then return 0 ; fi # Stop if no 'gem' command is available.
662
+
663
+ rvm_ruby_gem_home=${rvm_ruby_gem_home:-""}
664
+ rvm_gemset_name=${rvm_gemset_name:-""}
665
+
666
+ if [[ -z "${rvm_gemset_name:-""}" ]] ; then
667
+
668
+ # No longer defaulting to 'sticky' gem sets.
669
+ # Set 'rvm_sticky_flag=1' in ~/.rvmrc to enable.
670
+ if [[ ${rvm_sticky_flag:-0} -eq 1 ]] ; then
671
+
672
+ if [[ -n "${GEM_HOME:-""}" ]] ; then
673
+ rvm_gemset_name=$(echo $GEM_HOME | xargs basename | awk -F${rvm_gemset_separator:-"@"} '{print $2}')
674
+ fi
675
+
676
+ if [[ -n "${rvm_ruby_gem_home:-""}" ]] ; then
677
+ rvm_gemset_name=$(echo $rvm_ruby_gem_home | xargs basename | awk -F${rvm_gemset_separator:-"@"} '{print $2}')
678
+ fi
679
+ fi
680
+
681
+ if [[ -n "${rvm_gemset_name:-""}" ]] &&
682
+ ! echo "${rvm_gemset_name:-""}" | grep -q "^[[:digit:]]\.[[:digit:]]" ; then
683
+
684
+ rvm_ruby_gem_home="${rvm_gems_path:-"$rvm_path/gems"}/${rvm_ruby_string}${rvm_gemset_separator:-"@"}${rvm_gemset_name}"
685
+
686
+ else
687
+ if [[ -n "${rvm_ruby_string:-""}" && "${rvm_ruby_interpreter:-""}" != "system" ]] ; then
688
+ rvm_ruby_gem_home="${rvm_gems_path:-"$rvm_path/gems"}/$rvm_ruby_string"
689
+
690
+ elif [[ -z "${GEM_HOME:-""}" && -n "$(command -v gem)" ]] ; then
691
+ rvm_ruby_gem_home=$(gem env gemdir)
692
+
693
+ elif [[ -n "${GEM_HOME:-""}" ]] ; then
694
+ rvm_ruby_gem_home="$GEM_HOME"
695
+
696
+ else
697
+ rvm_ruby_gem_home=""
698
+ fi
699
+ fi
700
+ else
701
+ local gemset=$(echo "$rvm_ruby_gem_home" | awk -F'@' '{print $NF}')
702
+
703
+ if [[ -z "${rvm_ruby_string:-""}" && -n "${GEM_HOME:-""}" && -n "${GEM_HOME/@*/}" ]] ; then
704
+ rvm_ruby_string=$(basename ${GEM_HOME/@*/})
705
+ fi
706
+
707
+ if [[ -n "${rvm_ruby_string:-""}" ]] ; then
708
+
709
+ if [[ -z "${rvm_ruby_gem_home:-""}" || -n "${gemset:-""}" ]] ; then
710
+ rvm_ruby_gem_home="${rvm_gems_path:-"$rvm_path/gems"}/${rvm_ruby_string}${rvm_gemset_separator:-"@"}${rvm_gemset_name}"
711
+
712
+ elif [[ -n "${gemset:-""}" && "${rvm_gemset_name:-""}" != "${gemset:-""}" ]] ; then
713
+ rvm_ruby_gem_home="${rvm_gems_path:-"$rvm_path/gems"}/${rvm_ruby_string}${rvm_gemset_separator:-"@"}${rvm_gemset_name}"
714
+ fi
715
+ else
716
+ "$rvm_path/scripts/log" "error" "Gemsets can not be used with non rvm controlled rubies (currently)."
717
+ return 1
718
+ fi
719
+ fi
720
+
721
+ if [[ -z "${GEM_HOME:-""}" ]] ; then unset GEM_HOME ; fi
722
+
723
+ # If the gemset does not exist, then notify the user as such and abort the action.
724
+ if [[ -n "${rvm_gemset_name:-""}" && ! -d "$rvm_ruby_gem_home" ]] ; then
725
+
726
+ if [[ ${rvm_gemset_create_on_use_flag:-0} -ne 1 && ${rvm_create_flag:-0} -ne 1 && ${rvm_delete_flag:-0} -ne 1 ]] ; then
727
+
728
+ "$rvm_path/scripts/log" "error" "Gemset '$rvm_gemset_name' does not exist, rvm gemset create '$rvm_gemset_name' first."
729
+
730
+ return 1
731
+ fi
732
+
733
+ elif [[ ${rvm_delete_flag:-0} -eq 1 ]] ; then
734
+ return 1
735
+ fi
736
+
737
+ if [[ -z "${rvm_ruby_gem_home:-""}" && -n "${rvm_ruby_string:-""}" ]] ; then
738
+ rvm_ruby_gem_home="${rvm_gems_path:-"$rvm_path/gems"}/$rvm_ruby_string"
739
+ fi
740
+
741
+ rvm_ruby_global_gems_path="${rvm_ruby_gem_home%%${rvm_gemset_separator:-"@"}*}${rvm_gemset_separator:-"@"}global"
742
+ rvm_ruby_gem_path="$rvm_ruby_gem_home:$rvm_ruby_global_gems_path"
743
+
744
+ # Ensure that the ruby gem home exists.
745
+ \mkdir -p "$rvm_ruby_gem_home"
746
+ if [[ -n "${rvm_ruby_gem_home:-""}" ]] && echo "$rvm_ruby_gem_home" | \grep -q 'rvm'; then
747
+ if __rvm_using_gemset_globalcache && [[ ! -L "$rvm_ruby_gem_home/cache" ]]; then
748
+ \mv "$rvm_ruby_gem_home/cache/"*.gem "$rvm_gems_cache_path/" 2>/dev/null
749
+ \rm -rf "$rvm_ruby_gem_home/cache"
750
+ \ln -nfs "$rvm_gems_cache_path" "$rvm_ruby_gem_home/cache"
751
+ fi
752
+ fi
753
+
754
+ export rvm_ruby_gem_path rvm_ruby_gem_home
755
+ }
756
+
757
+ # Use a gemset specified by 'rvm_ruby_gem_home'
758
+ __rvm_gemset_use()
759
+ {
760
+ if [[ -z "${rvm_gemset_name:-""}" ]] ; then
761
+ "$rvm_path/scripts/log" "error" \
762
+ "Gemset was not given.\n Usage:\n rvm gemset use <gemsetname>\n"
763
+ return 1
764
+ fi
765
+
766
+ if [[ -n "${rvm_ruby_gem_home:-""}" ]] ; then
767
+
768
+ if [[ ! -d "$rvm_ruby_gem_home" ]] ; then
769
+
770
+ if [[ ${rvm_gemset_create_on_use_flag:-0} -eq 1 \
771
+ || ${rvm_create_flag:-0} -eq 1 ]] ; then
772
+ "$rvm_path/scripts/gemsets" create "$rvm_gemset_name"
773
+ else
774
+ "$rvm_path/scripts/log" "error" \
775
+ "Gemset '$rvm_gemset_name' does not exist, rvm gemset create '$rvm_gemset_name' first."
776
+ return 1
777
+ fi
778
+ fi
779
+
780
+ if [[ ${rvm_interactive_flag:-0} -gt 0 && ${rvm_verbose_flag:-1} -ne 0 ]] ; then
781
+ "$rvm_path/scripts/log" "info" "Now using gemset '${rvm_gemset_name:-default}'"
782
+ fi
783
+
784
+ rvm_ruby_gem_home="${GEM_HOME//${rvm_gemset_separator:-"@"}*}${rvm_gemset_separator:-"@"}${rvm_gemset_name}"
785
+ rvm_ruby_global_gems_path="${rvm_ruby_gem_home%%${rvm_gemset_separator:-"@"}*}${rvm_gemset_separator:-"@"}global"
786
+
787
+ GEM_HOME="$rvm_ruby_gem_home"
788
+ BUNDLE_PATH="$rvm_ruby_gem_home"
789
+ GEM_PATH="$rvm_ruby_gem_home:$rvm_ruby_global_gems_path"
790
+
791
+ export rvm_ruby_gem_home GEM_HOME BUNDLE_PATH GEM_PATH
792
+
793
+ __rvm_use # Now ensure the selection takes effect for the environment.
794
+ fi
795
+
796
+ return 0
797
+ }
798
+
799
+ __rvm_gemset_clear()
800
+ {
801
+ rvm_gemset_name=""
802
+
803
+ rvm_ruby_gem_home="${GEM_HOME//${rvm_gemset_separator:-"@"}*}"
804
+
805
+ rvm_ruby_global_gems_path="${rvm_ruby_gem_home}${rvm_gemset_separator:-"@"}global"
806
+
807
+ GEM_HOME=$rvm_ruby_gem_home
808
+
809
+ BUNDLE_PATH="$rvm_ruby_gem_home"
810
+
811
+ GEM_PATH="$rvm_ruby_gem_home:$rvm_ruby_global_gems_path"
812
+
813
+ export rvm_ruby_gem_home rvm_ruby_global_gems_path GEM_HOME BUNDLE_PATH GEM_PATH
814
+
815
+ __rvm_use # Now ensure the selection takes effect for the environment.
816
+
817
+ }
818
+