gemrage 0.1.1 → 0.1.2

Sign up to get free protection for your applications and to get access to all the features.
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
+