rubygems-update 1.8.30 → 2.0.0.preview2

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.

Potentially problematic release.


This version of rubygems-update might be problematic. Click here for more details.

Files changed (241) hide show
  1. checksums.yaml +6 -6
  2. checksums.yaml.gz.sig +0 -0
  3. data.tar.gz.sig +3 -0
  4. data/.autotest +6 -3
  5. data/History.txt +137 -63
  6. data/LICENSE.txt +1 -5
  7. data/Manifest.txt +69 -32
  8. data/README.rdoc +11 -9
  9. data/Rakefile +24 -38
  10. data/bin/gem +0 -9
  11. data/bin/update_rubygems +1 -0
  12. data/lib/rubygems.rb +193 -405
  13. data/lib/rubygems/available_set.rb +95 -0
  14. data/lib/rubygems/command.rb +88 -45
  15. data/lib/rubygems/command_manager.rb +67 -40
  16. data/lib/rubygems/commands/build_command.rb +5 -23
  17. data/lib/rubygems/commands/cert_command.rb +199 -57
  18. data/lib/rubygems/commands/check_command.rb +14 -39
  19. data/lib/rubygems/commands/cleanup_command.rb +9 -1
  20. data/lib/rubygems/commands/contents_command.rb +30 -12
  21. data/lib/rubygems/commands/dependency_command.rb +3 -8
  22. data/lib/rubygems/commands/environment_command.rb +13 -8
  23. data/lib/rubygems/commands/fetch_command.rb +3 -16
  24. data/lib/rubygems/commands/generate_index_command.rb +7 -47
  25. data/lib/rubygems/commands/help_command.rb +1 -1
  26. data/lib/rubygems/commands/install_command.rb +69 -36
  27. data/lib/rubygems/commands/list_command.rb +6 -4
  28. data/lib/rubygems/commands/lock_command.rb +1 -1
  29. data/lib/rubygems/commands/mirror_command.rb +17 -0
  30. data/lib/rubygems/commands/outdated_command.rb +6 -3
  31. data/lib/rubygems/commands/owner_command.rb +13 -5
  32. data/lib/rubygems/commands/pristine_command.rb +19 -4
  33. data/lib/rubygems/commands/push_command.rb +12 -1
  34. data/lib/rubygems/commands/query_command.rb +43 -27
  35. data/lib/rubygems/commands/rdoc_command.rb +23 -28
  36. data/lib/rubygems/commands/search_command.rb +4 -18
  37. data/lib/rubygems/commands/server_command.rb +1 -1
  38. data/lib/rubygems/commands/setup_command.rb +124 -38
  39. data/lib/rubygems/commands/sources_command.rb +16 -16
  40. data/lib/rubygems/commands/specification_command.rb +11 -13
  41. data/lib/rubygems/commands/uninstall_command.rb +24 -7
  42. data/lib/rubygems/commands/unpack_command.rb +7 -3
  43. data/lib/rubygems/commands/update_command.rb +22 -36
  44. data/lib/rubygems/commands/yank_command.rb +98 -0
  45. data/lib/rubygems/compatibility.rb +51 -0
  46. data/lib/rubygems/config_file.rb +82 -54
  47. data/lib/rubygems/core_ext/kernel_gem.rb +53 -0
  48. data/lib/rubygems/core_ext/kernel_require.rb +119 -0
  49. data/lib/rubygems/defaults.rb +10 -21
  50. data/lib/rubygems/dependency.rb +61 -10
  51. data/lib/rubygems/dependency_installer.rb +157 -69
  52. data/lib/rubygems/dependency_list.rb +11 -19
  53. data/lib/rubygems/dependency_resolver.rb +562 -0
  54. data/lib/rubygems/deprecate.rb +40 -40
  55. data/lib/rubygems/errors.rb +77 -24
  56. data/lib/rubygems/exceptions.rb +25 -7
  57. data/lib/rubygems/ext/builder.rb +20 -23
  58. data/lib/rubygems/ext/configure_builder.rb +2 -2
  59. data/lib/rubygems/ext/ext_conf_builder.rb +5 -45
  60. data/lib/rubygems/ext/rake_builder.rb +2 -2
  61. data/lib/rubygems/gem_runner.rb +3 -16
  62. data/lib/rubygems/gemcutter_utilities.rb +22 -7
  63. data/lib/rubygems/indexer.rb +6 -159
  64. data/lib/rubygems/install_message.rb +12 -0
  65. data/lib/rubygems/install_update_options.rb +56 -18
  66. data/lib/rubygems/installer.rb +244 -134
  67. data/lib/rubygems/installer_test_case.rb +71 -19
  68. data/lib/rubygems/mock_gem_ui.rb +17 -0
  69. data/lib/rubygems/name_tuple.rb +110 -0
  70. data/lib/rubygems/package.rb +514 -43
  71. data/lib/rubygems/package/digest_io.rb +64 -0
  72. data/lib/rubygems/package/old.rb +147 -0
  73. data/lib/rubygems/package/tar_header.rb +18 -55
  74. data/lib/rubygems/package/tar_reader.rb +20 -3
  75. data/lib/rubygems/package/tar_writer.rb +63 -7
  76. data/lib/rubygems/package_task.rb +3 -4
  77. data/lib/rubygems/path_support.rb +14 -7
  78. data/lib/rubygems/platform.rb +19 -26
  79. data/lib/rubygems/rdoc.rb +316 -0
  80. data/lib/rubygems/remote_fetcher.rb +117 -54
  81. data/lib/rubygems/request_set.rb +182 -0
  82. data/lib/rubygems/requirement.rb +63 -26
  83. data/lib/rubygems/security.rb +295 -555
  84. data/lib/rubygems/security/policies.rb +115 -0
  85. data/lib/rubygems/security/policy.rb +227 -0
  86. data/lib/rubygems/security/signer.rb +136 -0
  87. data/lib/rubygems/security/trust_dir.rb +104 -0
  88. data/lib/rubygems/server.rb +45 -55
  89. data/lib/rubygems/source.rb +144 -0
  90. data/lib/rubygems/source_list.rb +87 -0
  91. data/lib/rubygems/source_local.rb +92 -0
  92. data/lib/rubygems/source_specific_file.rb +28 -0
  93. data/lib/rubygems/spec_fetcher.rb +116 -184
  94. data/lib/rubygems/specification.rb +731 -335
  95. data/lib/rubygems/ssl_certs/AddTrustExternalCARoot.pem +88 -30
  96. data/lib/rubygems/ssl_certs/Entrust_net-Secure-Server-Certification-Authority.pem +90 -0
  97. data/lib/rubygems/ssl_certs/VerisignClass3PublicPrimaryCertificationAuthority-G2.pem +57 -0
  98. data/lib/rubygems/syck_hack.rb +2 -0
  99. data/lib/rubygems/test_case.rb +199 -109
  100. data/lib/rubygems/test_utilities.rb +25 -5
  101. data/lib/rubygems/uninstaller.rb +62 -20
  102. data/lib/rubygems/user_interaction.rb +10 -0
  103. data/lib/rubygems/validator.rb +33 -40
  104. data/lib/rubygems/version.rb +19 -8
  105. data/setup.rb +8 -1
  106. data/test/rubygems/alternate_cert.pem +9 -0
  107. data/test/rubygems/alternate_cert_32.pem +9 -0
  108. data/test/rubygems/alternate_key.pem +9 -0
  109. data/test/rubygems/bad_rake.rb +1 -0
  110. data/test/rubygems/child_cert.pem +9 -0
  111. data/test/rubygems/child_cert_32.pem +9 -0
  112. data/test/rubygems/child_key.pem +9 -0
  113. data/test/rubygems/data/null-type.gemspec.rz +0 -0
  114. data/test/rubygems/expired_cert.pem +9 -0
  115. data/test/rubygems/future_cert.pem +9 -0
  116. data/test/rubygems/future_cert_32.pem +9 -0
  117. data/test/rubygems/good_rake.rb +1 -0
  118. data/test/rubygems/grandchild_cert.pem +9 -0
  119. data/test/rubygems/grandchild_cert_32.pem +9 -0
  120. data/test/rubygems/grandchild_key.pem +9 -0
  121. data/test/rubygems/invalid_issuer_cert.pem +9 -0
  122. data/test/rubygems/invalid_issuer_cert_32.pem +9 -0
  123. data/test/rubygems/invalid_key.pem +9 -0
  124. data/test/rubygems/invalid_signer_cert.pem +9 -0
  125. data/test/rubygems/invalid_signer_cert_32.pem +9 -0
  126. data/test/rubygems/invalidchild_cert.pem +9 -0
  127. data/test/rubygems/invalidchild_cert_32.pem +9 -0
  128. data/test/rubygems/invalidchild_key.pem +9 -0
  129. data/test/rubygems/plugin/exception/rubygems_plugin.rb +1 -1
  130. data/test/rubygems/plugin/standarderror/rubygems_plugin.rb +1 -1
  131. data/test/rubygems/private_key.pem +7 -25
  132. data/test/rubygems/public_cert.pem +8 -18
  133. data/test/rubygems/public_cert_32.pem +10 -0
  134. data/test/rubygems/public_key.pem +4 -0
  135. data/test/rubygems/rubygems/commands/crash_command.rb +1 -1
  136. data/test/rubygems/test_config.rb +4 -6
  137. data/test/rubygems/test_deprecate.rb +76 -0
  138. data/test/rubygems/test_gem.rb +318 -83
  139. data/test/rubygems/test_gem_available_set.rb +106 -0
  140. data/test/rubygems/test_gem_command.rb +10 -0
  141. data/test/rubygems/test_gem_command_manager.rb +55 -9
  142. data/test/rubygems/test_gem_commands_build_command.rb +11 -19
  143. data/test/rubygems/test_gem_commands_cert_command.rb +441 -42
  144. data/test/rubygems/test_gem_commands_cleanup_command.rb +29 -1
  145. data/test/rubygems/test_gem_commands_contents_command.rb +23 -0
  146. data/test/rubygems/test_gem_commands_dependency_command.rb +5 -0
  147. data/test/rubygems/test_gem_commands_fetch_command.rb +19 -20
  148. data/test/rubygems/test_gem_commands_generate_index_command.rb +2 -83
  149. data/test/rubygems/test_gem_commands_help_command.rb +2 -1
  150. data/test/rubygems/test_gem_commands_install_command.rb +647 -48
  151. data/test/rubygems/test_gem_commands_mirror.rb +32 -0
  152. data/test/rubygems/test_gem_commands_owner_command.rb +4 -8
  153. data/test/rubygems/test_gem_commands_pristine_command.rb +99 -4
  154. data/test/rubygems/test_gem_commands_push_command.rb +62 -8
  155. data/test/rubygems/test_gem_commands_query_command.rb +51 -0
  156. data/test/rubygems/test_gem_commands_search_command.rb +25 -0
  157. data/test/rubygems/test_gem_commands_setup_command.rb +45 -0
  158. data/test/rubygems/test_gem_commands_sources_command.rb +21 -6
  159. data/test/rubygems/test_gem_commands_specification_command.rb +33 -1
  160. data/test/rubygems/test_gem_commands_uninstall_command.rb +91 -31
  161. data/test/rubygems/test_gem_commands_unpack_command.rb +3 -3
  162. data/test/rubygems/test_gem_commands_update_command.rb +56 -38
  163. data/test/rubygems/test_gem_commands_which_command.rb +4 -4
  164. data/test/rubygems/test_gem_commands_yank_command.rb +97 -0
  165. data/test/rubygems/test_gem_config_file.rb +66 -21
  166. data/test/rubygems/test_gem_dependency.rb +46 -0
  167. data/test/rubygems/test_gem_dependency_installer.rb +228 -18
  168. data/test/rubygems/test_gem_dependency_list.rb +0 -9
  169. data/test/rubygems/test_gem_dependency_resolver.rb +327 -0
  170. data/test/rubygems/test_gem_ext_configure_builder.rb +4 -4
  171. data/test/rubygems/test_gem_ext_ext_conf_builder.rb +21 -49
  172. data/test/rubygems/test_gem_ext_rake_builder.rb +13 -13
  173. data/test/rubygems/test_gem_gem_runner.rb +27 -5
  174. data/test/rubygems/test_gem_gemcutter_utilities.rb +19 -0
  175. data/test/rubygems/test_gem_indexer.rb +14 -227
  176. data/test/rubygems/test_gem_install_update_options.rb +83 -3
  177. data/test/rubygems/test_gem_installer.rb +211 -236
  178. data/test/rubygems/test_gem_local_remote_options.rb +8 -2
  179. data/test/rubygems/test_gem_name_tuple.rb +15 -0
  180. data/test/rubygems/test_gem_package.rb +547 -0
  181. data/test/rubygems/test_gem_package_old.rb +37 -0
  182. data/test/rubygems/test_gem_package_tar_reader.rb +32 -0
  183. data/test/rubygems/test_gem_package_tar_writer.rb +84 -1
  184. data/test/rubygems/test_gem_path_support.rb +4 -30
  185. data/test/rubygems/test_gem_platform.rb +3 -6
  186. data/test/rubygems/test_gem_rdoc.rb +245 -0
  187. data/test/rubygems/test_gem_remote_fetcher.rb +51 -5
  188. data/test/rubygems/test_gem_request_set.rb +70 -0
  189. data/test/rubygems/test_gem_requirement.rb +53 -24
  190. data/test/rubygems/test_gem_security.rb +189 -43
  191. data/test/rubygems/test_gem_security_policy.rb +376 -0
  192. data/test/rubygems/test_gem_security_signer.rb +184 -0
  193. data/test/rubygems/test_gem_security_trust_dir.rb +94 -0
  194. data/test/rubygems/test_gem_server.rb +31 -36
  195. data/test/rubygems/test_gem_silent_ui.rb +2 -2
  196. data/test/rubygems/test_gem_source.rb +188 -0
  197. data/test/rubygems/test_gem_source_list.rb +87 -0
  198. data/test/rubygems/test_gem_source_local.rb +83 -0
  199. data/test/rubygems/test_gem_source_specific_file.rb +33 -0
  200. data/test/rubygems/test_gem_spec_fetcher.rb +91 -255
  201. data/test/rubygems/test_gem_specification.rb +293 -39
  202. data/test/rubygems/test_gem_uninstaller.rb +136 -13
  203. data/test/rubygems/test_gem_validator.rb +14 -41
  204. data/test/rubygems/test_gem_version.rb +15 -21
  205. data/test/rubygems/test_require.rb +193 -0
  206. data/test/rubygems/wrong_key_cert.pem +9 -0
  207. data/test/rubygems/wrong_key_cert_32.pem +9 -0
  208. metadata +171 -83
  209. metadata.gz.sig +1 -0
  210. data/CVE-2013-4287.txt +0 -36
  211. data/CVE-2013-4363.txt +0 -45
  212. data/ci_build.sh +0 -27
  213. data/cruise_config.rb +0 -32
  214. data/lib/rbconfig/datadir.rb +0 -13
  215. data/lib/rubygems/builder.rb +0 -99
  216. data/lib/rubygems/custom_require.rb +0 -69
  217. data/lib/rubygems/doc_manager.rb +0 -243
  218. data/lib/rubygems/format.rb +0 -82
  219. data/lib/rubygems/gem_openssl.rb +0 -90
  220. data/lib/rubygems/gem_path_searcher.rb +0 -172
  221. data/lib/rubygems/old_format.rb +0 -153
  222. data/lib/rubygems/package/f_sync_dir.rb +0 -23
  223. data/lib/rubygems/package/tar_input.rb +0 -234
  224. data/lib/rubygems/package/tar_output.rb +0 -146
  225. data/lib/rubygems/require_paths_builder.rb +0 -18
  226. data/lib/rubygems/source_index.rb +0 -406
  227. data/lib/rubygems/ssl_certs/AddTrustExternalCARoot-2048.pem +0 -25
  228. data/lib/rubygems/ssl_certs/Class3PublicPrimaryCertificationAuthority.pem +0 -14
  229. data/lib/rubygems/ssl_certs/DigiCertHighAssuranceEVRootCA.pem +0 -23
  230. data/lib/rubygems/ssl_certs/EntrustnetSecureServerCertificationAuthority.pem +0 -28
  231. data/lib/rubygems/ssl_certs/GeoTrustGlobalCA.pem +0 -20
  232. data/test/rubygems/test_bundled_ca.rb +0 -59
  233. data/test/rubygems/test_gem_builder.rb +0 -44
  234. data/test/rubygems/test_gem_doc_manager.rb +0 -32
  235. data/test/rubygems/test_gem_ext_builder.rb +0 -58
  236. data/test/rubygems/test_gem_format.rb +0 -88
  237. data/test/rubygems/test_gem_gem_path_searcher.rb +0 -94
  238. data/test/rubygems/test_gem_package_tar_input.rb +0 -129
  239. data/test/rubygems/test_gem_package_tar_output.rb +0 -101
  240. data/test/rubygems/test_gem_source_index.rb +0 -250
  241. data/util/update_bundled_ca_certificates.rb +0 -103
data/setup.rb CHANGED
@@ -5,6 +5,11 @@
5
5
  # See LICENSE.txt for permissions.
6
6
  #++
7
7
 
8
+ if RUBY_VERSION < "1.8.7"
9
+ $stderr.puts "Rubygems now requires Ruby 1.8.7 or later"
10
+ exit 1
11
+ end
12
+
8
13
  # Make sure rubygems isn't already loaded.
9
14
  if ENV['RUBYOPT'] or defined? Gem then
10
15
  ENV.delete 'RUBYOPT'
@@ -31,7 +36,9 @@ require 'rubygems/exceptions'
31
36
  Gem::CommandManager.instance.register_command :setup
32
37
 
33
38
  args = ARGV.clone
34
-
39
+ if ENV["GEM_PREV_VER"]
40
+ args = [ '--previous-version', ENV["GEM_PREV_VER"] ] + args
41
+ end
35
42
  args.unshift 'setup'
36
43
 
37
44
  begin
@@ -0,0 +1,9 @@
1
+ -----BEGIN CERTIFICATE-----
2
+ MIIBSjCB9aADAgECAgEBMA0GCSqGSIb3DQEBBQUAMC0xEjAQBgNVBAMMCWFsdGVy
3
+ bmF0ZTEXMBUGCgmSJomT8ixkARkWB2V4YW1wbGUwIBcNMTIwMTIzMjM0MzIzWhgP
4
+ OTk5OTEyMzEyMzU5NTlaMC0xEjAQBgNVBAMMCWFsdGVybmF0ZTEXMBUGCgmSJomT
5
+ 8ixkARkWB2V4YW1wbGUwXDANBgkqhkiG9w0BAQEFAANLADBIAkEA0lN/jShlFg0t
6
+ +h1L2gkdi2UXFnfLnXNh+J3Jolh4/Pd8rdzKTdnCep2nqDIRimnlEjO1+I3u7aur
7
+ Uc4b1AhX5QIDAQABMA0GCSqGSIb3DQEBBQUAA0EAidcjR8U5VFcds1Tv8bnz3Z+P
8
+ w7lmN1HOmwnQht1ZTVbqmqKzxEXgf4AkZRoIT96gPRV87HwJ5PP/pDYmv3LR8g==
9
+ -----END CERTIFICATE-----
@@ -0,0 +1,9 @@
1
+ -----BEGIN CERTIFICATE-----
2
+ MIIBSDCB86ADAgECAgEBMA0GCSqGSIb3DQEBBQUAMC0xEjAQBgNVBAMMCWFsdGVy
3
+ bmF0ZTEXMBUGCgmSJomT8ixkARkWB2V4YW1wbGUwHhcNMTIwMTEyMjMwODI5WhcN
4
+ MzgwMTE5MDMxNDA3WjAtMRIwEAYDVQQDDAlhbHRlcm5hdGUxFzAVBgoJkiaJk/Is
5
+ ZAEZFgdleGFtcGxlMFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBANJTf40oZRYNLfod
6
+ S9oJHYtlFxZ3y51zYfidyaJYePz3fK3cyk3Zwnqdp6gyEYpp5RIztfiN7u2rq1HO
7
+ G9QIV+UCAwEAATANBgkqhkiG9w0BAQUFAANBAH9YxSERfWdqipZbQGDmx2F8e5O2
8
+ 6zbDialEy+bD8juhzWa6nIPaoQzeSkD0lw98OXpVyE0vhnGS1rlVH3725Xw=
9
+ -----END CERTIFICATE-----
@@ -0,0 +1,9 @@
1
+ -----BEGIN RSA PRIVATE KEY-----
2
+ MIIBOgIBAAJBANJTf40oZRYNLfodS9oJHYtlFxZ3y51zYfidyaJYePz3fK3cyk3Z
3
+ wnqdp6gyEYpp5RIztfiN7u2rq1HOG9QIV+UCAwEAAQJAAM1kvSscR5tBQ6T89xX1
4
+ 0ORP1DwcwLsB8qrXbBEeVQiy4aAcfUgKbMxiSEL3iogoHnKK6VFmu4bH4v360dJl
5
+ OQIhAO97aiKxP6u+Y1oNyScF2lViu81xR4jlL/DjD8I+oBr/AiEA4NVFey13ks3U
6
+ 2DTHU3qhU6y+MmYv0aCInf49hMt1gRsCIQCvSiR71EWIjkjmh6Su3Yfca/KPA9Wa
7
+ jDc1GN5WDcTfPQIgaYzWLKjAvQOyi7njZdZpTG4JcIG2q1QRLxL/cItP48cCIFvI
8
+ /R7PnPrVdF5G2QT7DZyrHjjtqnyW76zwU3MSxZMJ
9
+ -----END RSA PRIVATE KEY-----
@@ -0,0 +1 @@
1
+ exit 1
@@ -0,0 +1,9 @@
1
+ -----BEGIN CERTIFICATE-----
2
+ MIIBQzCB7qADAgECAgEBMA0GCSqGSIb3DQEBBQUAMCoxDzANBgNVBAMMBm5vYm9k
3
+ eTEXMBUGCgmSJomT8ixkARkWB2V4YW1wbGUwIBcNMTIwMTEzMDAxNTE4WhgPOTk5
4
+ OTEyMzEyMzU5NTlaMCkxDjAMBgNVBAMMBWNoaWxkMRcwFQYKCZImiZPyLGQBGRYH
5
+ ZXhhbXBsZTBcMA0GCSqGSIb3DQEBAQUAA0sAMEgCQQC93Mml1yQmsUDalFT1PH4z
6
+ z8Al8ki969L/NHUWdkG6DuM0krWiWPBkO+Moj+6NMH2TrGWyHPfYv5zQ3zn9ai+d
7
+ AgMBAAEwDQYJKoZIhvcNAQEFBQADQQCKb9V9Wl6hQNuDsn38Ceg6gCh9hXqvHrCz
8
+ /pzoFjTxZfsYCNapXp1hzb8cUijzi2YalXzUpg7zgEowLZpZD94s
9
+ -----END CERTIFICATE-----
@@ -0,0 +1,9 @@
1
+ -----BEGIN CERTIFICATE-----
2
+ MIIBQzCB7qADAgECAgEBMA0GCSqGSIb3DQEBBQUAMCoxDzANBgNVBAMMBm5vYm9k
3
+ eTEXMBUGCgmSJomT8ixkARkWB2V4YW1wbGUwIBcNMTIwMTEzMDAxNTE4WhgPMjAz
4
+ ODAxMTkwMzE0MDdaMCkxDjAMBgNVBAMMBWNoaWxkMRcwFQYKCZImiZPyLGQBGRYH
5
+ ZXhhbXBsZTBcMA0GCSqGSIb3DQEBAQUAA0sAMEgCQQC93Mml1yQmsUDalFT1PH4z
6
+ z8Al8ki969L/NHUWdkG6DuM0krWiWPBkO+Moj+6NMH2TrGWyHPfYv5zQ3zn9ai+d
7
+ AgMBAAEwDQYJKoZIhvcNAQEFBQADQQB7JhifNXK4PTYVZv5NYmqyi4ze7h2sxxNl
8
+ hqjzIj+GFsf/5uFt0Oz/n8VCE/LEWVKhejiyiaLxN7nLjszW7EGq
9
+ -----END CERTIFICATE-----
@@ -0,0 +1,9 @@
1
+ -----BEGIN RSA PRIVATE KEY-----
2
+ MIIBOgIBAAJBAL3cyaXXJCaxQNqUVPU8fjPPwCXySL3r0v80dRZ2QboO4zSStaJY
3
+ 8GQ74yiP7o0wfZOsZbIc99i/nNDfOf1qL50CAwEAAQJAEBEhF2Gvc37IiDbJQb+O
4
+ xn+sOQnZ0gik4GfmCLKVOVNn4mxJI2fJe/6qUyt5Bp0nTuY+jfx9XFIlx3A3QZY6
5
+ mQIhAN0E92rtcTvTy5lPO+hAeUQu59q6+HzC7HJJOevPWlqrAiEA2+lvvNOyZXUD
6
+ VmlyexQ1VdNLQtqRWtQd2PBtg0W4HtcCIAU7C9v0+JwQ3B2puWI6vGP3tDcB+8WA
7
+ G3Zs8zj4dEv3AiBdSLB1UPejwfcgeKpvOytEtNSAD2cJOGFQ3OwXe0OXEQIhAJXR
8
+ I7JTU0DJF+dqpR7jr1hQSXibdEXP7MIJUSK4uLUs
9
+ -----END RSA PRIVATE KEY-----
@@ -0,0 +1,9 @@
1
+ -----BEGIN CERTIFICATE-----
2
+ MIIBQjCB7aADAgECAgEBMA0GCSqGSIb3DQEBBQUAMCoxDzANBgNVBAMMBm5vYm9k
3
+ eTEXMBUGCgmSJomT8ixkARkWB2V4YW1wbGUwHhcNNzAwMTAxMDAwMDAwWhcNNzAw
4
+ MTAxMDAwMDAwWjAqMQ8wDQYDVQQDDAZub2JvZHkxFzAVBgoJkiaJk/IsZAEZFgdl
5
+ eGFtcGxlMFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBALHKBD9e+mrCnQ7Xs2fdEhxa
6
+ +0mpObjlK7dL6hoNF190aoLwQ6xwiCAMT7WPVs4/XW81Nssq2RkHGiWGxIXnMlsC
7
+ AwEAATANBgkqhkiG9w0BAQUFAANBAE3nKONBLbE97pTsIpM6v8bzCVhtVPfS+6F7
8
+ 6WnIDuVUyN0pmVlWqRuEm8WZtrwnu1D6CGNTWwescrIEbQV6dvc=
9
+ -----END CERTIFICATE-----
@@ -0,0 +1,9 @@
1
+ -----BEGIN CERTIFICATE-----
2
+ MIIBRjCB8aADAgECAgEBMA0GCSqGSIb3DQEBBQUAMCoxDzANBgNVBAMMBm5vYm9k
3
+ eTEXMBUGCgmSJomT8ixkARkWB2V4YW1wbGUwIhgPOTk5OTEyMzEyMzU5NThaGA85
4
+ OTk5MTIzMTIzNTk1OVowKjEPMA0GA1UEAwwGbm9ib2R5MRcwFQYKCZImiZPyLGQB
5
+ GRYHZXhhbXBsZTBcMA0GCSqGSIb3DQEBAQUAA0sAMEgCQQCxygQ/Xvpqwp0O17Nn
6
+ 3RIcWvtJqTm45Su3S+oaDRdfdGqC8EOscIggDE+1j1bOP11vNTbLKtkZBxolhsSF
7
+ 5zJbAgMBAAEwDQYJKoZIhvcNAQEFBQADQQB0blKxIt6IfzaHHBgMfJwkwtEoDEey
8
+ OEtjX5oz9L0P+l/KjssEFk4fzPiVFHmx9y3KCXhapVvHcgeY7IKGHK7z
9
+ -----END CERTIFICATE-----
@@ -0,0 +1,9 @@
1
+ -----BEGIN CERTIFICATE-----
2
+ MIIBSDCB86ADAgECAgEBMA0GCSqGSIb3DQEBBQUAMC0xEjAQBgNVBAMMCWFsdGVy
3
+ bmF0ZTEXMBUGCgmSJomT8ixkARkWB2V4YW1wbGUwHhcNMzgwMTE5MDMxNDA2WhcN
4
+ MzgwMTE5MDMxNDA3WjAtMRIwEAYDVQQDDAlhbHRlcm5hdGUxFzAVBgoJkiaJk/Is
5
+ ZAEZFgdleGFtcGxlMFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBALHKBD9e+mrCnQ7X
6
+ s2fdEhxa+0mpObjlK7dL6hoNF190aoLwQ6xwiCAMT7WPVs4/XW81Nssq2RkHGiWG
7
+ xIXnMlsCAwEAATANBgkqhkiG9w0BAQUFAANBAG7xn/s1GqtjdNA92OOwLP84N7hQ
8
+ Xa4tBtYaP84rC4LJhkYWdhTIM4YM3UpG9obxL1Xh1+92kLTN3/KpLK4EcQQ=
9
+ -----END CERTIFICATE-----
@@ -0,0 +1 @@
1
+ exit 0
@@ -0,0 +1,9 @@
1
+ -----BEGIN CERTIFICATE-----
2
+ MIIBRzCB8qADAgECAgEBMA0GCSqGSIb3DQEBBQUAMCkxDjAMBgNVBAMMBWNoaWxk
3
+ MRcwFQYKCZImiZPyLGQBGRYHZXhhbXBsZTAgFw0xMjAxMTMwMTIxNTlaGA85OTk5
4
+ MTIzMTIzNTk1OVowLjETMBEGA1UEAwwKZ3JhbmRjaGlsZDEXMBUGCgmSJomT8ixk
5
+ ARkWB2V4YW1wbGUwXDANBgkqhkiG9w0BAQEFAANLADBIAkEA12r06nh9Pl7QTM2X
6
+ caPBi5uVLqyM8Bfinxc9/AJfEvvGCix/TFP0Y9E3qVxTc1WDsPdQqTZNqVjb8hi3
7
+ W6246QIDAQABMA0GCSqGSIb3DQEBBQUAA0EAOdAYyauzQqU1x2KkMgf8U3vJZbPl
8
+ zIKWr8mN+eV+YyqQgIkX+/v8AAmOGPO+HJa2Ifs2DwcLdfsqQipkytTVxQ==
9
+ -----END CERTIFICATE-----
@@ -0,0 +1,9 @@
1
+ -----BEGIN CERTIFICATE-----
2
+ MIIBRzCB8qADAgECAgEBMA0GCSqGSIb3DQEBBQUAMCkxDjAMBgNVBAMMBWNoaWxk
3
+ MRcwFQYKCZImiZPyLGQBGRYHZXhhbXBsZTAgFw0xMjAxMTMwMTIxNTlaGA8yMDM4
4
+ MDExOTAzMTQwN1owLjETMBEGA1UEAwwKZ3JhbmRjaGlsZDEXMBUGCgmSJomT8ixk
5
+ ARkWB2V4YW1wbGUwXDANBgkqhkiG9w0BAQEFAANLADBIAkEA12r06nh9Pl7QTM2X
6
+ caPBi5uVLqyM8Bfinxc9/AJfEvvGCix/TFP0Y9E3qVxTc1WDsPdQqTZNqVjb8hi3
7
+ W6246QIDAQABMA0GCSqGSIb3DQEBBQUAA0EAMEUY6jNegDA5hUJy7KD80MZCS83e
8
+ pPIQJyAtmOI+J1UR6C1/BHW0Ls1/Ko04R7DcHyGR46wttV7LB1TY7ya4OQ==
9
+ -----END CERTIFICATE-----
@@ -0,0 +1,9 @@
1
+ -----BEGIN RSA PRIVATE KEY-----
2
+ MIIBOgIBAAJBANdq9Op4fT5e0EzNl3GjwYublS6sjPAX4p8XPfwCXxL7xgosf0xT
3
+ 9GPRN6lcU3NVg7D3UKk2TalY2/IYt1utuOkCAwEAAQJBAKpS7Td+8Tgha31uiTHX
4
+ Eq854ui2kfE8UXkMvXvGvDma2W40lkQKVLMJO0Y9zfJ+8E4+70nS0Eny+3feErLo
5
+ 2aECIQDw9+BSwRVBaEIwGUD4wg8ganZvMBkmU+o+1jUKjbUgrQIhAOTbDeS1NyB5
6
+ Zm2ViTKOMadvzwUZax86TZ1rwfMDIbStAiA9eB4DPjn722q29lo6mtZdAIuBxZVE
7
+ z7c7nE0fihKgaQIgfaDiV5JC2MjLuYxE7EOybj+qXRo++719rdThew1VC2ECIB5f
8
+ 4Xzx62LvumYHJ7U56PHbAmSgAqEIixoDc+Bw9pE+
9
+ -----END RSA PRIVATE KEY-----
@@ -0,0 +1,9 @@
1
+ -----BEGIN CERTIFICATE-----
2
+ MIIBRTCB8KADAgECAgEBMA0GCSqGSIb3DQEBBQUAMCoxDzANBgNVBAMMBm5vYm9k
3
+ eTEXMBUGCgmSJomT8ixkARkWB2V4YW1wbGUwIBcNMTIwMTEyMjM1NDQyWhgPOTk5
4
+ OTEyMzEyMzU5NTlaMCsxEDAOBgNVBAMMB2ludmFsaWQxFzAVBgoJkiaJk/IsZAEZ
5
+ FgdleGFtcGxlMFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBANMWNw1TDxEdIz/4s6Km
6
+ 4DUd3avjH4/0Fb63/nKWSbacKykvalYCVW3N3xnghgr1mWID1foiMdGZliQXfCll
7
+ yt0CAwEAATANBgkqhkiG9w0BAQUFAANBAIZzMKb/4YOk6pp0jSCDfb8CC2G7LVDt
8
+ b4LE1L2tbT1VQX34AjSprmdyrUXbjA3MYrE/w070Lr256dTr3fq7nWY=
9
+ -----END CERTIFICATE-----
@@ -0,0 +1,9 @@
1
+ -----BEGIN CERTIFICATE-----
2
+ MIIBQzCB7qADAgECAgEBMA0GCSqGSIb3DQEBBQUAMCoxDzANBgNVBAMMBm5vYm9k
3
+ eTEXMBUGCgmSJomT8ixkARkWB2V4YW1wbGUwHhcNMTIwMTEyMjM1NTE2WhcNMzgw
4
+ MTE5MDMxNDA3WjArMRAwDgYDVQQDDAdpbnZhbGlkMRcwFQYKCZImiZPyLGQBGRYH
5
+ ZXhhbXBsZTBcMA0GCSqGSIb3DQEBAQUAA0sAMEgCQQDTFjcNUw8RHSM/+LOipuA1
6
+ Hd2r4x+P9BW+t/5ylkm2nCspL2pWAlVtzd8Z4IYK9ZliA9X6IjHRmZYkF3wpZcrd
7
+ AgMBAAEwDQYJKoZIhvcNAQEFBQADQQBrExQicbjbw9QvQC9qVVzXLTZ6Zir6OJE7
8
+ pTRsrSWWX7k5tgTUNhDb7xTr9njEAjwBDjMt5pry0MzM4MbT3Kiz
9
+ -----END CERTIFICATE-----
@@ -0,0 +1,9 @@
1
+ -----BEGIN RSA PRIVATE KEY-----
2
+ MIIBOQIBAAJBANMWNw1TDxEdIz/4s6Km4DUd3avjH4/0Fb63/nKWSbacKykvalYC
3
+ VW3N3xnghgr1mWID1foiMdGZliQXfCllyt0CAwEAAQJAXL3z7hzCD+jXZfHlKt9a
4
+ vruiezTM1ziMnUDFwJ6bQGlLuS6BLNTTvKkJuSQ7v9Rj0gzCkOq9ipkb8jFgWyOt
5
+ AQIhAP9f0Pb4YCezCnWv5sEw1iT1TWbe0+72ICY+PEIY4Px9AiEA05qekUe1e/j9
6
+ 2ykXZxuFnM1wUO8yLhy6A71EasyKNeECICKfJeBlufuH3XIpH9qvOUkXbJ/2s7rg
7
+ 6Wjl5Rt87futAiBTZIhBcSVQ6lwBVzxl4i7SERTGkL4R9jhI6PphrKJ7gQIgH8if
8
+ aoIHSpVKSt+Sheoi84v4CXE/MSU0uVPkqtUiV6A=
9
+ -----END RSA PRIVATE KEY-----
@@ -0,0 +1,9 @@
1
+ -----BEGIN CERTIFICATE-----
2
+ MIIBRjCB8aADAgECAgEBMA0GCSqGSIb3DQEBBQUAMCsxEDAOBgNVBAMMB2ludmFs
3
+ aWQxFzAVBgoJkiaJk/IsZAEZFgdleGFtcGxlMCAXDTEyMDExMzIyNDE1NVoYDzk5
4
+ OTkxMjMxMjM1OTU5WjArMRAwDgYDVQQDDAdpbnZhbGlkMRcwFQYKCZImiZPyLGQB
5
+ GRYHZXhhbXBsZTBcMA0GCSqGSIb3DQEBAQUAA0sAMEgCQQDTFjcNUw8RHSM/+LOi
6
+ puA1Hd2r4x+P9BW+t/5ylkm2nCspL2pWAlVtzd8Z4IYK9ZliA9X6IjHRmZYkF3wp
7
+ ZcrdAgMBAAEwDQYJKoZIhvcNAQEFBQADQQBAT7aP57Q3HJW4EfPAl0anJPpAI8g1
8
+ yWGhg/vUIUpBDImJ+jRJU9AuRGRPKWIRonOon+LV9sammaM4GWsU1FLb
9
+ -----END CERTIFICATE-----
@@ -0,0 +1,9 @@
1
+ -----BEGIN CERTIFICATE-----
2
+ MIIBRjCB8aADAgECAgEBMA0GCSqGSIb3DQEBBQUAMCsxEDAOBgNVBAMMB2ludmFs
3
+ aWQxFzAVBgoJkiaJk/IsZAEZFgdleGFtcGxlMCAXDTEyMDExMzIyNDE1NVoYDzIw
4
+ MzgwMTE5MDMxNDA3WjArMRAwDgYDVQQDDAdpbnZhbGlkMRcwFQYKCZImiZPyLGQB
5
+ GRYHZXhhbXBsZTBcMA0GCSqGSIb3DQEBAQUAA0sAMEgCQQDTFjcNUw8RHSM/+LOi
6
+ puA1Hd2r4x+P9BW+t/5ylkm2nCspL2pWAlVtzd8Z4IYK9ZliA9X6IjHRmZYkF3wp
7
+ ZcrdAgMBAAEwDQYJKoZIhvcNAQEFBQADQQAXkBGQZ4sr9p2uFoluFFqQMQL11npB
8
+ UdhOTcM1XJ1KoyDhyRqD7gy7vxJf+9517eLABWyGMBPlDr7/CFPp/o/D
9
+ -----END CERTIFICATE-----
@@ -0,0 +1,9 @@
1
+ -----BEGIN CERTIFICATE-----
2
+ MIIBSTCB9KADAgECAgEBMA0GCSqGSIb3DQEBBQUAMCkxDjAMBgNVBAMMBWNoaWxk
3
+ MRcwFQYKCZImiZPyLGQBGRYHZXhhbXBsZTAgFw0xMjAxMTMwMDQ0MTZaGA85OTk5
4
+ MTIzMTIzNTk1OVowMDEVMBMGA1UEAwwMaW52YWxpZGNoaWxkMRcwFQYKCZImiZPy
5
+ LGQBGRYHZXhhbXBsZTBcMA0GCSqGSIb3DQEBAQUAA0sAMEgCQQC+tFy6eVKpSmHW
6
+ 6QeZG1Egbtz2mcNywUvUZvXQVAMh/7qWyWkKbHAXeAeFw6ZhR3jC6MsEXCECwR+j
7
+ nH0hIp2pAgMBAAEwDQYJKoZIhvcNAQEFBQADQQBGWN8/w709gZtguup+xZ44pi7p
8
+ XDU05EFgnFM8hoN5DcCcFtiWCNkbN0AH5u+xXgotDMsEq+OwlJb8qAElaRjP
9
+ -----END CERTIFICATE-----
@@ -0,0 +1,9 @@
1
+ -----BEGIN CERTIFICATE-----
2
+ MIIBSTCB9KADAgECAgEBMA0GCSqGSIb3DQEBBQUAMCkxDjAMBgNVBAMMBWNoaWxk
3
+ MRcwFQYKCZImiZPyLGQBGRYHZXhhbXBsZTAgFw0xMjAxMTMwMDQ0MTZaGA8yMDM4
4
+ MDExOTAzMTQwN1owMDEVMBMGA1UEAwwMaW52YWxpZGNoaWxkMRcwFQYKCZImiZPy
5
+ LGQBGRYHZXhhbXBsZTBcMA0GCSqGSIb3DQEBAQUAA0sAMEgCQQC+tFy6eVKpSmHW
6
+ 6QeZG1Egbtz2mcNywUvUZvXQVAMh/7qWyWkKbHAXeAeFw6ZhR3jC6MsEXCECwR+j
7
+ nH0hIp2pAgMBAAEwDQYJKoZIhvcNAQEFBQADQQCjqL4JaoRhCAExVddloKxNajAh
8
+ VIpjw8FC7bdNhpCrf8bgOHR7UU8r42JdeJ0wR7TyV8a8pXxtd6GLPZvKaZbK
9
+ -----END CERTIFICATE-----
@@ -0,0 +1,9 @@
1
+ -----BEGIN RSA PRIVATE KEY-----
2
+ MIIBOgIBAAJBAL60XLp5UqlKYdbpB5kbUSBu3PaZw3LBS9Rm9dBUAyH/upbJaQps
3
+ cBd4B4XDpmFHeMLoywRcIQLBH6OcfSEinakCAwEAAQJAPdi0ce1Ct5Bd5pqwUiEf
4
+ 0Erj8j2vuxmhBANYGPYGBhIe/W4I6JGvaeZgY8/vLHdBSqxYDa417+N1TkgnC8U0
5
+ GQIhAPpE9Tx4AYxI6EhtS5RSv+yXjNmuGV3iNk9CwZy8WenLAiEAwxI+ejSU2qhn
6
+ +JhbUd2AhCwokzHPYLIln5NzG1FXN9sCIQC4FTLA+JBC7HmWlHXMMpWi49IhZzKX
7
+ YMWLxVF+BPipwwIgbd/u1QKc/XRx67JVbY0oAEqnKBGcT0jIrFNvOGneiJUCIB6d
8
+ vHfEsN61hepd+BWOnw6ProEhPAYnOIAl1eNwdVqI
9
+ -----END RSA PRIVATE KEY-----
@@ -1,2 +1,2 @@
1
1
  TestGem::TEST_PLUGIN_EXCEPTION = :loaded
2
- raise Exception.new('boom')
2
+ raise Exception.new('boom')
@@ -1,2 +1,2 @@
1
1
  TestGem::TEST_PLUGIN_STANDARDERROR = :loaded
2
- raise StandardError.new('boom')
2
+ raise StandardError.new('boom')
@@ -1,27 +1,9 @@
1
1
  -----BEGIN RSA PRIVATE KEY-----
2
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- UQmMs0Bs4hF1SzVl0n+KNoXHOwswVrmBWXgWvm2OhnwY2e26jfejc8toJc/ShAJ7
12
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- +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
- 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
- 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
- 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
- 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
- QoG1WLXUiDV3BRlmyOAF1h3p12KRTLgwubN51ajECwcs3QwE+ZT8Gg==
2
+ MIIBOwIBAAJBALHKBD9e+mrCnQ7Xs2fdEhxa+0mpObjlK7dL6hoNF190aoLwQ6xw
3
+ iCAMT7WPVs4/XW81Nssq2RkHGiWGxIXnMlsCAwEAAQJAFhk4IfBaS/7Yqsmg4R4X
4
+ bDLa3TMNm6/QmT30YTyTVSfcMM3eum/5rDkKs/FmK80Q8vAch6frwG6zp65I+QrZ
5
+ cQIhANo21fpTGe4SoBTNugOqPsoXg+QeqXC2b0PccqbW6c5FAiEA0JMv/EgYL3KX
6
+ 8lelPRq5VvDU+i8pnu4s283zmbap2B8CIQCQVvFXMZzXQ26sFCDUx8nct41AWZ/O
7
+ tH4Ir0sPXN0u2QIgHC9HlLfJTOAXWFAvrAoocW8p2IT3Atr8hNdXy7W7TdECIQC+
8
+ PYFyUaQAl5s0r0Dl6SoQ6klTvOLRyX9nUg9vJnVWkg==
27
9
  -----END RSA PRIVATE KEY-----
@@ -1,20 +1,10 @@
1
1
  -----BEGIN CERTIFICATE-----
2
- MIIDNjCCAh6gAwIBAgIBADANBgkqhkiG9w0BAQUFADBBMRAwDgYDVQQDDAdkcmJy
3
- YWluMRgwFgYKCZImiZPyLGQBGRYIc2VnbWVudDcxEzARBgoJkiaJk/IsZAEZFgNu
4
- ZXQwHhcNMDcxMjIxMDIwNDE0WhcNMDgxMjIwMDIwNDE0WjBBMRAwDgYDVQQDDAdk
5
- cmJyYWluMRgwFgYKCZImiZPyLGQBGRYIc2VnbWVudDcxEzARBgoJkiaJk/IsZAEZ
6
- FgNuZXQwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCbbgLrGLGIDE76
7
- LV/cvxdEzCuYuS3oG9PrSZnuDweySUfdp/so0cDq+j8bqy6OzZSw07gdjwFMSd6J
8
- U5ddZCVywn5nnAQ+Ui7jMW54CYt5/H6f2US6U0hQOjJR6cpfiymgxGdfyTiVcvTm
9
- Gj/okWrQl0NjYOYBpDi+9PPmaH2RmLJu0dB/NylsDnW5j6yN1BEI8MfJRR+HRKZY
10
- mUtgzBwF1V4KIZQ8EuL6I/nHVu07i6IkrpAgxpXUfdJQJi0oZAqXurAV3yTxkFwd
11
- g62YrrW26mDe+pZBzR6bpLE+PmXCzz7UxUq3AE0gPHbiMXie3EFE0oxnsU3lIduh
12
- sCANiQ8BAgMBAAGjOTA3MAkGA1UdEwQCMAAwCwYDVR0PBAQDAgSwMB0GA1UdDgQW
13
- BBS5k4Z75VSpdM0AclG2UvzFA/VW5DANBgkqhkiG9w0BAQUFAAOCAQEAHagT4lfX
14
- kP/hDaiwGct7XPuVGbrOsKRVD59FF5kETBxEc9UQ1clKWngf8JoVuEoKD774dW19
15
- bU0GOVWO+J6FMmT/Cp7nuFJ79egMf/gy4gfUfQMuvfcr6DvZUPIs9P/TlK59iMYF
16
- DIOQ3DxdF3rMzztNUCizN4taVscEsjCcgW6WkUJnGdqlu3OHWpQxZBJkBTjPCoc6
17
- UW6on70SFPmAy/5Cq0OJNGEWBfgD9q7rrs/X8GGwUWqXb85RXnUVi/P8Up75E0ag
18
- 14jEc90kN+C7oI/AGCBN0j6JnEtYIEJZibjjDJTSMWlUKKkj30kq7hlUC2CepJ4v
19
- x52qPcexcYZR7w==
2
+ MIIBZDCCAQ6gAwIBAgIBATANBgkqhkiG9w0BAQUFADAqMQ8wDQYDVQQDDAZub2Jv
3
+ ZHkxFzAVBgoJkiaJk/IsZAEZFgdleGFtcGxlMCAXDTEyMDEyNjIzNTYzOFoYDzk5
4
+ OTkxMjMxMjM1OTU5WjAqMQ8wDQYDVQQDDAZub2JvZHkxFzAVBgoJkiaJk/IsZAEZ
5
+ FgdleGFtcGxlMFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBALHKBD9e+mrCnQ7Xs2fd
6
+ Ehxa+0mpObjlK7dL6hoNF190aoLwQ6xwiCAMT7WPVs4/XW81Nssq2RkHGiWGxIXn
7
+ MlsCAwEAAaMdMBswGQYDVR0RBBIwEIEObm9ib2R5QGV4YW1wbGUwDQYJKoZIhvcN
8
+ AQEFBQADQQAyMwxov898I7UD6WD588jgWPJjy89+iVIEvtFq/rHmTspBxP16/iom
9
+ oD36DRV5ir0n6mED+s2R2MaF1EMO2WVw
20
10
  -----END CERTIFICATE-----
@@ -0,0 +1,10 @@
1
+ -----BEGIN CERTIFICATE-----
2
+ MIIBZDCCAQ6gAwIBAgIBATANBgkqhkiG9w0BAQUFADAqMQ8wDQYDVQQDDAZub2Jv
3
+ ZHkxFzAVBgoJkiaJk/IsZAEZFgdleGFtcGxlMCAXDTEyMDEyNjIzNTYzOFoYDzIw
4
+ MzgwMTE5MDMxNDA3WjAqMQ8wDQYDVQQDDAZub2JvZHkxFzAVBgoJkiaJk/IsZAEZ
5
+ FgdleGFtcGxlMFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBALHKBD9e+mrCnQ7Xs2fd
6
+ Ehxa+0mpObjlK7dL6hoNF190aoLwQ6xwiCAMT7WPVs4/XW81Nssq2RkHGiWGxIXn
7
+ MlsCAwEAAaMdMBswGQYDVR0RBBIwEIEObm9ib2R5QGV4YW1wbGUwDQYJKoZIhvcN
8
+ AQEFBQADQQAMNCoCiTAT4+e+vVeHwdN2HXh+L4YhAm8OCkVtEwX7aJWe/JV6S6Ma
9
+ XNq1DX0kl6CENeztHU1EZx0CrMn1lyYg
10
+ -----END CERTIFICATE-----
@@ -0,0 +1,4 @@
1
+ -----BEGIN PUBLIC KEY-----
2
+ MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBALHKBD9e+mrCnQ7Xs2fdEhxa+0mpObjl
3
+ K7dL6hoNF190aoLwQ6xwiCAMT7WPVs4/XW81Nssq2RkHGiWGxIXnMlsCAwEAAQ==
4
+ -----END PUBLIC KEY-----
@@ -2,4 +2,4 @@ class Gem::Commands::CrashCommand < Gem::Command
2
2
 
3
3
  raise "crash"
4
4
 
5
- end
5
+ end
@@ -4,12 +4,10 @@ require 'rubygems'
4
4
  class TestConfig < Gem::TestCase
5
5
 
6
6
  def test_datadir
7
- _, err = capture_io do
8
- datadir = RbConfig::CONFIG['datadir']
9
- assert_equal "#{datadir}/xyz", RbConfig.datadir('xyz')
10
- end
11
-
12
- assert_match(/deprecate/, err)
7
+ util_make_gems
8
+ spec = Gem::Specification.find_by_name("a")
9
+ spec.activate
10
+ assert_equal "#{spec.full_gem_path}/data/a", Gem.datadir('a')
13
11
  end
14
12
 
15
13
  end
@@ -0,0 +1,76 @@
1
+ require 'rubygems/test_case'
2
+ # require 'rubygems/builder'
3
+ # require 'rubygems/package'
4
+ require 'rubygems/deprecate'
5
+
6
+ class TestDeprecate < Gem::TestCase
7
+
8
+ def setup
9
+ super
10
+
11
+ # Gem::Deprecate.saved_warnings.clear
12
+ @original_skip = Gem::Deprecate.skip
13
+ Gem::Deprecate.skip = false
14
+ end
15
+
16
+ def teardown
17
+ super
18
+
19
+ # Gem::Deprecate.saved_warnings.clear
20
+ Gem::Deprecate.skip = @original_skip
21
+ end
22
+
23
+ def test_defaults
24
+ assert_equal false, @original_skip
25
+ end
26
+
27
+ def test_assignment
28
+ Gem::Deprecate.skip = false
29
+ assert_equal false, Gem::Deprecate.skip
30
+
31
+ Gem::Deprecate.skip = true
32
+ assert_equal true, Gem::Deprecate.skip
33
+
34
+ Gem::Deprecate.skip = nil
35
+ assert([true,false].include? Gem::Deprecate.skip)
36
+ end
37
+
38
+ def test_skip
39
+ Gem::Deprecate.skip_during do
40
+ assert_equal true, Gem::Deprecate.skip
41
+ end
42
+
43
+ Gem::Deprecate.skip = nil
44
+ end
45
+
46
+ class Thing
47
+ extend Gem::Deprecate
48
+ attr_accessor :message
49
+ def foo
50
+ @message = "foo"
51
+ end
52
+ def bar
53
+ @message = "bar"
54
+ end
55
+ deprecate :foo, :bar, 2099, 3
56
+ end
57
+
58
+ def test_deprecated_method_calls_the_old_method
59
+ capture_io do
60
+ thing = Thing.new
61
+ thing.foo
62
+ assert_equal "foo", thing.message
63
+ end
64
+ end
65
+
66
+ def test_deprecated_method_outputs_a_warning
67
+ out, err = capture_io do
68
+ thing = Thing.new
69
+ thing.foo
70
+ end
71
+
72
+ assert_equal "", out
73
+ assert_match(/Thing#foo is deprecated; use bar instead\./, err)
74
+ assert_match(/on or after 2099-03-01/, err)
75
+ end
76
+ end
@@ -1,21 +1,22 @@
1
1
  require 'rubygems/test_case'
2
2
  require 'rubygems'
3
- require 'rubygems/gem_openssl'
4
3
  require 'rubygems/installer'
5
4
  require 'pathname'
6
5
  require 'tmpdir'
7
6
 
7
+ # TODO: push this up to test_case.rb once battle tested
8
+ $SAFE=1
9
+ $LOAD_PATH.map! do |path|
10
+ path.dup.untaint
11
+ end
12
+
8
13
  class TestGem < Gem::TestCase
9
14
 
10
15
  def setup
11
16
  super
12
17
 
18
+ ENV.delete 'RUBYGEMS_GEMDEPS'
13
19
  @additional = %w[a b].map { |d| File.join @tempdir, d }
14
- @default_dir_re = if RUBY_VERSION > '1.9' then
15
- %r|/.*?[Rr]uby.*?/[Gg]ems/[0-9.]+|
16
- else
17
- %r|/[Rr]uby/[Gg]ems/[0-9.]+|
18
- end
19
20
 
20
21
  util_remove_interrupt_command
21
22
  end
@@ -48,7 +49,7 @@ class TestGem < Gem::TestCase
48
49
  end
49
50
 
50
51
  def unresolved_names
51
- Gem.unresolved_deps.values.map(&:to_s).sort
52
+ Gem::Specification.unresolved_deps.values.map(&:to_s).sort
52
53
  end
53
54
 
54
55
  # TODO: move these to specification
@@ -60,7 +61,9 @@ class TestGem < Gem::TestCase
60
61
  install_specs a1, b1, b2
61
62
 
62
63
  a1.activate
63
- require "b/c"
64
+ save_loaded_features do
65
+ require "b/c"
66
+ end
64
67
 
65
68
  assert_equal %w(a-1 b-1), loaded_spec_names
66
69
  end
@@ -131,6 +134,82 @@ class TestGem < Gem::TestCase
131
134
  end
132
135
  end
133
136
 
137
+ def test_self_finish_resolve
138
+ save_loaded_features do
139
+ a1 = new_spec "a", "1", "b" => "> 0"
140
+ b1 = new_spec "b", "1", "c" => ">= 1"
141
+ b2 = new_spec "b", "2", "c" => ">= 2"
142
+ c1 = new_spec "c", "1"
143
+ c2 = new_spec "c", "2"
144
+
145
+ install_specs a1, b1, b2, c1, c2
146
+
147
+ a1.activate
148
+
149
+ assert_equal %w(a-1), loaded_spec_names
150
+ assert_equal ["b (> 0)"], unresolved_names
151
+
152
+ Gem.finish_resolve
153
+
154
+ assert_equal %w(a-1 b-2 c-2), loaded_spec_names
155
+ assert_equal [], unresolved_names
156
+ end
157
+ end
158
+
159
+ def test_self_activate_via_require_wtf
160
+ save_loaded_features do
161
+ a1 = new_spec "a", "1", "b" => "> 0", "d" => "> 0" # this
162
+ b1 = new_spec "b", "1", { "c" => ">= 1" }, "lib/b.rb"
163
+ b2 = new_spec "b", "2", { "c" => ">= 2" }, "lib/b.rb" # this
164
+ c1 = new_spec "c", "1"
165
+ c2 = new_spec "c", "2" # this
166
+ d1 = new_spec "d", "1", { "c" => "< 2" }, "lib/d.rb"
167
+ d2 = new_spec "d", "2", { "c" => "< 2" }, "lib/d.rb" # this
168
+
169
+ install_specs a1, b1, b2, c1, c2, d1, d2
170
+
171
+ a1.activate
172
+
173
+ assert_equal %w(a-1), loaded_spec_names
174
+ assert_equal ["b (> 0)", "d (> 0)"], unresolved_names
175
+
176
+ require "b"
177
+
178
+ e = assert_raises Gem::LoadError do
179
+ require "d"
180
+ end
181
+
182
+ assert_equal "unable to find a version of 'd' to activate", e.message
183
+
184
+ assert_equal %w(a-1 b-2 c-2), loaded_spec_names
185
+ assert_equal ["d (> 0)"], unresolved_names
186
+ end
187
+ end
188
+
189
+ def test_self_finish_resolve_wtf
190
+ save_loaded_features do
191
+ a1 = new_spec "a", "1", "b" => "> 0", "d" => "> 0" # this
192
+ b1 = new_spec "b", "1", { "c" => ">= 1" }, "lib/b.rb" # this
193
+ b2 = new_spec "b", "2", { "c" => ">= 2" }, "lib/b.rb"
194
+ c1 = new_spec "c", "1" # this
195
+ c2 = new_spec "c", "2"
196
+ d1 = new_spec "d", "1", { "c" => "< 2" }, "lib/d.rb"
197
+ d2 = new_spec "d", "2", { "c" => "< 2" }, "lib/d.rb" # this
198
+
199
+ install_specs a1, b1, b2, c1, c2, d1, d2
200
+
201
+ a1.activate
202
+
203
+ assert_equal %w(a-1), loaded_spec_names
204
+ assert_equal ["b (> 0)", "d (> 0)"], unresolved_names
205
+
206
+ Gem.finish_resolve
207
+
208
+ assert_equal %w(a-1 b-1 c-1 d-2), loaded_spec_names
209
+ assert_equal [], unresolved_names
210
+ end
211
+ end
212
+
134
213
  # TODO: move these to specification
135
214
  def test_self_activate_ambiguous_unrelated
136
215
  save_loaded_features do
@@ -456,16 +535,6 @@ class TestGem < Gem::TestCase
456
535
  assert_activate %w[d-1 e-1], e1, "d"
457
536
  end
458
537
 
459
- def test_self_available?
460
- util_make_gems
461
- Gem::Deprecate.skip_during do
462
- assert(Gem.available?("a"))
463
- assert(Gem.available?("a", "1"))
464
- assert(Gem.available?("a", ">1"))
465
- assert(!Gem.available?("monkeys"))
466
- end
467
- end
468
-
469
538
  def test_self_bin_path_no_exec_name
470
539
  e = assert_raises ArgumentError do
471
540
  Gem.bin_path 'a'
@@ -523,14 +592,8 @@ class TestGem < Gem::TestCase
523
592
 
524
593
  def test_self_bindir_default_dir
525
594
  default = Gem.default_dir
526
- bindir = if defined?(RUBY_FRAMEWORK_VERSION) then
527
- '/usr/bin'
528
- else
529
- RbConfig::CONFIG['bindir']
530
- end
531
595
 
532
- assert_equal bindir, Gem.bindir(default)
533
- assert_equal bindir, Gem.bindir(Pathname.new(default))
596
+ assert_equal Gem.default_bindir, Gem.bindir(default)
534
597
  end
535
598
 
536
599
  def test_self_clear_paths
@@ -573,10 +636,6 @@ class TestGem < Gem::TestCase
573
636
  assert_nil Gem.datadir('xyzzy')
574
637
  end
575
638
 
576
- def test_self_default_dir
577
- assert_match @default_dir_re, Gem.default_dir
578
- end
579
-
580
639
  def test_self_default_exec_format
581
640
  orig_RUBY_INSTALL_NAME = Gem::ConfigMap[:ruby_install_name]
582
641
  Gem::ConfigMap[:ruby_install_name] = 'ruby'
@@ -681,19 +740,6 @@ class TestGem < Gem::TestCase
681
740
  end
682
741
  end
683
742
 
684
- def test_ensure_ssl_available
685
- orig_Gem_ssl_available = Gem.ssl_available?
686
-
687
- Gem.ssl_available = true
688
- Gem.ensure_ssl_available
689
-
690
- Gem.ssl_available = false
691
- e = assert_raises Gem::Exception do Gem.ensure_ssl_available end
692
- assert_equal 'SSL is not installed on this system', e.message
693
- ensure
694
- Gem.ssl_available = orig_Gem_ssl_available
695
- end
696
-
697
743
  def test_self_find_files
698
744
  cwd = File.expand_path("test/rubygems", @@project_dir)
699
745
  $LOAD_PATH.unshift cwd
@@ -756,7 +802,7 @@ class TestGem < Gem::TestCase
756
802
 
757
803
  Gem.instance_variable_set :@paths, nil
758
804
 
759
- assert_equal [Gem.dir, *Gem.default_path].uniq, Gem.path
805
+ assert_equal [Gem.default_path, Gem.dir].flatten.uniq, Gem.path
760
806
  ensure
761
807
  Object.const_set :APPLE_GEM_HOME, orig_APPLE_GEM_HOME if orig_APPLE_GEM_HOME
762
808
  end
@@ -795,10 +841,11 @@ class TestGem < Gem::TestCase
795
841
 
796
842
  ENV['GEM_PATH'] = @additional.join(File::PATH_SEPARATOR)
797
843
 
798
- assert_equal [Gem.dir, *@additional], Gem.path
844
+ assert_equal @additional, Gem.path[0,2]
799
845
 
800
846
  assert_equal path_count + @additional.size, Gem.path.size,
801
847
  "extra path components: #{Gem.path[2..-1].inspect}"
848
+ assert_equal Gem.dir, Gem.path.last
802
849
  end
803
850
 
804
851
  def test_self_path_duplicate
@@ -811,7 +858,8 @@ class TestGem < Gem::TestCase
811
858
 
812
859
  assert_equal @gemhome, Gem.dir
813
860
 
814
- assert_equal [Gem.dir, *@additional], Gem.path
861
+ paths = [Gem.dir]
862
+ assert_equal @additional + paths, Gem.path
815
863
  end
816
864
 
817
865
  def test_self_path_overlap
@@ -823,7 +871,8 @@ class TestGem < Gem::TestCase
823
871
 
824
872
  assert_equal @gemhome, Gem.dir
825
873
 
826
- assert_equal [Gem.dir, *@additional], Gem.path
874
+ paths = [Gem.dir]
875
+ assert_equal @additional + paths, Gem.path
827
876
  end
828
877
 
829
878
  def test_self_platforms
@@ -933,6 +982,10 @@ class TestGem < Gem::TestCase
933
982
  util_restore_RUBY_VERSION
934
983
  end
935
984
 
985
+ def test_self_rubygems_version
986
+ assert_equal Gem::Version.new(Gem::VERSION), Gem.rubygems_version
987
+ end
988
+
936
989
  def test_self_paths_eq
937
990
  other = File.join @tempdir, 'other'
938
991
  path = [@userhome, other].join File::PATH_SEPARATOR
@@ -943,7 +996,7 @@ class TestGem < Gem::TestCase
943
996
  ENV["GEM_HOME"] = @gemhome
944
997
  Gem.paths = { "GEM_PATH" => path }
945
998
 
946
- assert_equal [@gemhome, @userhome, other], Gem.path
999
+ assert_equal [@userhome, other, @gemhome], Gem.path
947
1000
  end
948
1001
 
949
1002
  def test_self_paths_eq_nonexistent_home
@@ -956,13 +1009,71 @@ class TestGem < Gem::TestCase
956
1009
 
957
1010
  Gem.paths = { "GEM_PATH" => other }
958
1011
 
959
- assert_equal [@gemhome, other], Gem.path
1012
+ assert_equal [other, @gemhome], Gem.path
960
1013
  end
961
1014
 
962
- def test_self_source_index
963
- Gem::Deprecate.skip_during do
964
- assert_kind_of Gem::SourceIndex, Gem.source_index
965
- end
1015
+ def test_self_post_build
1016
+ assert_equal 1, Gem.post_build_hooks.length
1017
+
1018
+ Gem.post_build do |installer| end
1019
+
1020
+ assert_equal 2, Gem.post_build_hooks.length
1021
+ end
1022
+
1023
+ def test_self_post_install
1024
+ assert_equal 1, Gem.post_install_hooks.length
1025
+
1026
+ Gem.post_install do |installer| end
1027
+
1028
+ assert_equal 2, Gem.post_install_hooks.length
1029
+ end
1030
+
1031
+ def test_self_done_installing
1032
+ assert_empty Gem.done_installing_hooks
1033
+
1034
+ Gem.done_installing do |gems| end
1035
+
1036
+ assert_equal 1, Gem.done_installing_hooks.length
1037
+ end
1038
+
1039
+ def test_self_post_reset
1040
+ assert_empty Gem.post_reset_hooks
1041
+
1042
+ Gem.post_reset { }
1043
+
1044
+ assert_equal 1, Gem.post_reset_hooks.length
1045
+ end
1046
+
1047
+ def test_self_post_uninstall
1048
+ assert_equal 1, Gem.post_uninstall_hooks.length
1049
+
1050
+ Gem.post_uninstall do |installer| end
1051
+
1052
+ assert_equal 2, Gem.post_uninstall_hooks.length
1053
+ end
1054
+
1055
+ def test_self_pre_install
1056
+ assert_equal 1, Gem.pre_install_hooks.length
1057
+
1058
+ Gem.pre_install do |installer| end
1059
+
1060
+ assert_equal 2, Gem.pre_install_hooks.length
1061
+ end
1062
+
1063
+ def test_self_pre_reset
1064
+ assert_empty Gem.pre_reset_hooks
1065
+
1066
+ Gem.pre_reset { }
1067
+
1068
+ assert_equal 1, Gem.pre_reset_hooks.length
1069
+ end
1070
+
1071
+ def test_self_pre_uninstall
1072
+ assert_equal 1, Gem.pre_uninstall_hooks.length
1073
+
1074
+ Gem.pre_uninstall do |installer| end
1075
+
1076
+ assert_equal 2, Gem.pre_uninstall_hooks.length
966
1077
  end
967
1078
 
968
1079
  def test_self_sources
@@ -982,19 +1093,7 @@ class TestGem < Gem::TestCase
982
1093
  Gem.try_activate 'a_file'
983
1094
  end
984
1095
 
985
- assert_match %r%Could not find b %, e.message
986
- end
987
-
988
- def test_ssl_available_eh
989
- orig_Gem_ssl_available = Gem.ssl_available?
990
-
991
- Gem.ssl_available = true
992
- assert_equal true, Gem.ssl_available?
993
-
994
- Gem.ssl_available = false
995
- assert_equal false, Gem.ssl_available?
996
- ensure
997
- Gem.ssl_available = orig_Gem_ssl_available
1096
+ assert_match %r%Could not find 'b' %, e.message
998
1097
  end
999
1098
 
1000
1099
  def test_self_use_paths
@@ -1003,7 +1102,7 @@ class TestGem < Gem::TestCase
1003
1102
  Gem.use_paths @gemhome, @additional
1004
1103
 
1005
1104
  assert_equal @gemhome, Gem.dir
1006
- assert_equal [Gem.dir, *@additional], Gem.path
1105
+ assert_equal @additional + [Gem.dir], Gem.path
1007
1106
  end
1008
1107
 
1009
1108
  def test_self_user_dir
@@ -1019,6 +1118,46 @@ class TestGem < Gem::TestCase
1019
1118
  end
1020
1119
  end
1021
1120
 
1121
+ def test_self_needs
1122
+ util_clear_gems
1123
+ a = util_spec "a", "1"
1124
+ b = util_spec "b", "1", "c" => nil
1125
+ c = util_spec "c", "2"
1126
+
1127
+ install_specs a, b, c
1128
+
1129
+ Gem.needs do |r|
1130
+ r.gem "a"
1131
+ r.gem "b", "= 1"
1132
+ end
1133
+
1134
+ activated = Gem::Specification.map { |x| x.full_name }
1135
+
1136
+ assert_equal %w!a-1 b-1 c-2!, activated.sort
1137
+ end
1138
+
1139
+ def test_self_needs_picks_up_unresolved_deps
1140
+ save_loaded_features do
1141
+ util_clear_gems
1142
+ a = util_spec "a", "1"
1143
+ b = util_spec "b", "1", "c" => nil
1144
+ c = util_spec "c", "2"
1145
+ d = new_spec "d", "1", {'e' => '= 1'}, "lib/d.rb"
1146
+ e = util_spec "e", "1"
1147
+
1148
+ install_specs a, b, c, d, e
1149
+
1150
+ Gem.needs do |r|
1151
+ r.gem "a"
1152
+ r.gem "b", "= 1"
1153
+
1154
+ require 'd'
1155
+ end
1156
+
1157
+ assert_equal %w!a-1 b-1 c-2 d-1 e-1!, loaded_spec_names
1158
+ end
1159
+ end
1160
+
1022
1161
  if Gem.win_platform? && '1.9' > RUBY_VERSION
1023
1162
  # Ruby 1.9 properly handles ~ path expansion, so no need to run such tests.
1024
1163
  def test_self_user_home_userprofile
@@ -1105,23 +1244,6 @@ class TestGem < Gem::TestCase
1105
1244
  assert_equal :loaded, TEST_PLUGIN_EXCEPTION rescue nil
1106
1245
  end
1107
1246
 
1108
- def test_latest_load_paths
1109
- spec = quick_spec 'a', '4' do |s|
1110
- s.require_paths = ["lib"]
1111
- end
1112
-
1113
- install_gem spec
1114
-
1115
- # @exec_path = File.join spec.full_gem_path, spec.bindir, 'exec'
1116
- # @abin_path = File.join spec.full_gem_path, spec.bindir, 'abin'
1117
- # FileUtils.mkdir_p File.join(stem, "gems", "test-3")
1118
-
1119
- Gem::Deprecate.skip_during do
1120
- expected = [File.join(@gemhome, "gems", "a-4", "lib")]
1121
- assert_equal expected, Gem.latest_load_paths
1122
- end
1123
- end
1124
-
1125
1247
  def test_gem_path_ordering
1126
1248
  refute_equal Gem.dir, Gem.user_dir
1127
1249
 
@@ -1202,6 +1324,119 @@ class TestGem < Gem::TestCase
1202
1324
  "Wrong spec selected"
1203
1325
  end
1204
1326
 
1327
+ def test_auto_activation_of_specific_gemdeps_file
1328
+ util_clear_gems
1329
+
1330
+ a = new_spec "a", "1", nil, "lib/a.rb"
1331
+ b = new_spec "b", "1", nil, "lib/b.rb"
1332
+ c = new_spec "c", "1", nil, "lib/c.rb"
1333
+
1334
+ install_specs a, b, c
1335
+
1336
+ path = File.join @tempdir, "gem.deps.rb"
1337
+
1338
+ File.open path, "w" do |f|
1339
+ f.puts "gem 'a'"
1340
+ f.puts "gem 'b'"
1341
+ f.puts "gem 'c'"
1342
+ end
1343
+
1344
+ ENV['RUBYGEMS_GEMDEPS'] = path
1345
+
1346
+ Gem.detect_gemdeps
1347
+
1348
+ assert_equal %w!a-1 b-1 c-1!, loaded_spec_names
1349
+ end
1350
+
1351
+ def test_auto_activation_of_detected_gemdeps_file
1352
+ util_clear_gems
1353
+
1354
+ a = new_spec "a", "1", nil, "lib/a.rb"
1355
+ b = new_spec "b", "1", nil, "lib/b.rb"
1356
+ c = new_spec "c", "1", nil, "lib/c.rb"
1357
+
1358
+ install_specs a, b, c
1359
+
1360
+ path = File.join @tempdir, "gem.deps.rb"
1361
+
1362
+ File.open path, "w" do |f|
1363
+ f.puts "gem 'a'"
1364
+ f.puts "gem 'b'"
1365
+ f.puts "gem 'c'"
1366
+ end
1367
+
1368
+ ENV['RUBYGEMS_GEMDEPS'] = "-"
1369
+
1370
+ assert_equal [a,b,c], Gem.detect_gemdeps
1371
+ end
1372
+
1373
+ LIB_PATH = File.expand_path "../../../lib".untaint, __FILE__.untaint
1374
+
1375
+ def test_looks_for_gemdeps_files_automatically_on_start
1376
+ util_clear_gems
1377
+
1378
+ a = new_spec "a", "1", nil, "lib/a.rb"
1379
+ b = new_spec "b", "1", nil, "lib/b.rb"
1380
+ c = new_spec "c", "1", nil, "lib/c.rb"
1381
+
1382
+ install_specs a, b, c
1383
+
1384
+ path = File.join @tempdir, "gem.deps.rb"
1385
+
1386
+ File.open path, "w" do |f|
1387
+ f.puts "gem 'a'"
1388
+ f.puts "gem 'b'"
1389
+ f.puts "gem 'c'"
1390
+ end
1391
+
1392
+ path = File.join(@tempdir, "gd-tmp")
1393
+ install_gem a, :install_dir => path
1394
+ install_gem b, :install_dir => path
1395
+ install_gem c, :install_dir => path
1396
+
1397
+ ENV['GEM_PATH'] = path
1398
+ ENV['RUBYGEMS_GEMDEPS'] = "-"
1399
+
1400
+ out = `#{Gem.ruby.untaint} -I #{LIB_PATH.untaint} -rubygems -e "p Gem.loaded_specs.values.map(&:full_name).sort"`
1401
+
1402
+ assert_equal '["a-1", "b-1", "c-1"]', out.strip
1403
+ end
1404
+
1405
+ def test_looks_for_gemdeps_files_automatically_on_start_in_parent_dir
1406
+ util_clear_gems
1407
+
1408
+ a = new_spec "a", "1", nil, "lib/a.rb"
1409
+ b = new_spec "b", "1", nil, "lib/b.rb"
1410
+ c = new_spec "c", "1", nil, "lib/c.rb"
1411
+
1412
+ install_specs a, b, c
1413
+
1414
+ path = File.join @tempdir, "gem.deps.rb"
1415
+
1416
+ File.open path, "w" do |f|
1417
+ f.puts "gem 'a'"
1418
+ f.puts "gem 'b'"
1419
+ f.puts "gem 'c'"
1420
+ end
1421
+
1422
+ path = File.join(@tempdir, "gd-tmp")
1423
+ install_gem a, :install_dir => path
1424
+ install_gem b, :install_dir => path
1425
+ install_gem c, :install_dir => path
1426
+
1427
+ ENV['GEM_PATH'] = path
1428
+ ENV['RUBYGEMS_GEMDEPS'] = "-"
1429
+
1430
+ Dir.mkdir "sub1"
1431
+ out = Dir.chdir "sub1" do
1432
+ `#{Gem.ruby.untaint} -I #{LIB_PATH.untaint} -rubygems -e "p Gem.loaded_specs.values.map(&:full_name).sort"`
1433
+ end
1434
+
1435
+ Dir.rmdir "sub1"
1436
+
1437
+ assert_equal '["a-1", "b-1", "c-1"]', out.strip
1438
+ end
1439
+
1205
1440
  def with_plugin(path)
1206
1441
  test_plugin_path = File.expand_path("test/rubygems/plugin/#{path}",
1207
1442
  @@project_dir)