rubygems-update 1.8.30 → 2.0.0.preview2

Sign up to get free protection for your applications and to get access to all the features.

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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
- 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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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
- sY5GqQkAp/kHMntEin+sErJw6mkgAGdser3a9p8CgYEAqi31w++tunRnxw4+RRnY
19
- 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
- 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
- +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
- 588J6m0WYf5CWy5pzbcviGFpzvSlzXv7GOLylQ+QgcxbETFUbDPzsT4xd0AgJwj1
23
- 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
- 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
- JZW3Ihn9KRrVSxfFApKS/ZwjiZ+tJUk7DE/v/0l0sszefY7s8b0pL1lpeZSoL71e
26
- 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
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)