rubygems-update 2.7.11 → 3.0.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (359) hide show
  1. checksums.yaml +4 -4
  2. data/.rubocop.yml +67 -0
  3. data/.travis.yml +24 -18
  4. data/CODE_OF_CONDUCT.md +10 -8
  5. data/CONTRIBUTING.md +148 -0
  6. data/History.txt +458 -8
  7. data/MAINTAINERS.txt +1 -0
  8. data/Manifest.txt +16 -9
  9. data/POLICIES.md +92 -0
  10. data/README.md +53 -26
  11. data/Rakefile +77 -211
  12. data/{UPGRADING.rdoc → UPGRADING.md} +31 -32
  13. data/appveyor.yml +20 -45
  14. data/bin/gem +1 -2
  15. data/bin/update_rubygems +2 -3
  16. data/bundler/CHANGELOG.md +65 -0
  17. data/bundler/bundler.gemspec +7 -1
  18. data/bundler/lib/bundler/build_metadata.rb +1 -1
  19. data/bundler/lib/bundler/cli/add.rb +15 -5
  20. data/bundler/lib/bundler/cli/binstubs.rb +8 -2
  21. data/bundler/lib/bundler/cli/doctor.rb +47 -1
  22. data/bundler/lib/bundler/cli/install.rb +8 -5
  23. data/bundler/lib/bundler/cli/list.rb +41 -5
  24. data/bundler/lib/bundler/cli/outdated.rb +7 -1
  25. data/bundler/lib/bundler/cli/pristine.rb +4 -0
  26. data/bundler/lib/bundler/cli/remove.rb +18 -0
  27. data/bundler/lib/bundler/cli.rb +63 -21
  28. data/bundler/lib/bundler/definition.rb +15 -16
  29. data/bundler/lib/bundler/dependency.rb +2 -2
  30. data/bundler/lib/bundler/dsl.rb +19 -3
  31. data/bundler/lib/bundler/feature_flag.rb +7 -0
  32. data/bundler/lib/bundler/gem_version_promoter.rb +4 -2
  33. data/bundler/lib/bundler/injector.rb +168 -9
  34. data/bundler/lib/bundler/installer/parallel_installer.rb +5 -0
  35. data/bundler/lib/bundler/installer.rb +29 -6
  36. data/bundler/lib/bundler/plugin/events.rb +61 -0
  37. data/bundler/lib/bundler/plugin.rb +10 -3
  38. data/bundler/lib/bundler/resolver.rb +2 -2
  39. data/bundler/lib/bundler/rubygems_gem_installer.rb +7 -0
  40. data/bundler/lib/bundler/runtime.rb +8 -2
  41. data/bundler/lib/bundler/settings/validator.rb +23 -0
  42. data/bundler/lib/bundler/settings.rb +24 -3
  43. data/bundler/lib/bundler/shared_helpers.rb +19 -3
  44. data/bundler/lib/bundler/source/metadata.rb +2 -3
  45. data/bundler/lib/bundler/source.rb +9 -9
  46. data/bundler/lib/bundler/templates/newgem/lib/newgem.rb.tt +1 -0
  47. data/bundler/lib/bundler/version.rb +1 -1
  48. data/bundler/lib/bundler.rb +26 -8
  49. data/bundler/man/bundle-add.ronn +13 -2
  50. data/bundler/man/bundle-config.ronn +21 -0
  51. data/bundler/man/bundle-install.ronn +1 -1
  52. data/bundler/man/bundle-list.ronn +19 -1
  53. data/bundler/man/bundle-outdated.ronn +4 -0
  54. data/bundler/man/bundle-remove.ronn +23 -0
  55. data/bundler/man/bundle-update.ronn +1 -1
  56. data/bundler/man/bundle.ronn +3 -0
  57. data/lib/rubygems/available_set.rb +1 -1
  58. data/lib/rubygems/basic_specification.rb +12 -12
  59. data/lib/rubygems/bundler_version_finder.rb +3 -3
  60. data/lib/rubygems/command.rb +22 -15
  61. data/lib/rubygems/command_manager.rb +22 -5
  62. data/lib/rubygems/commands/build_command.rb +41 -7
  63. data/lib/rubygems/commands/cert_command.rb +45 -24
  64. data/lib/rubygems/commands/check_command.rb +1 -1
  65. data/lib/rubygems/commands/cleanup_command.rb +14 -7
  66. data/lib/rubygems/commands/contents_command.rb +14 -15
  67. data/lib/rubygems/commands/dependency_command.rb +17 -17
  68. data/lib/rubygems/commands/environment_command.rb +20 -1
  69. data/lib/rubygems/commands/fetch_command.rb +2 -3
  70. data/lib/rubygems/commands/generate_index_command.rb +2 -3
  71. data/lib/rubygems/commands/help_command.rb +12 -13
  72. data/lib/rubygems/commands/info_command.rb +33 -0
  73. data/lib/rubygems/commands/install_command.rb +21 -17
  74. data/lib/rubygems/commands/list_command.rb +0 -1
  75. data/lib/rubygems/commands/lock_command.rb +3 -4
  76. data/lib/rubygems/commands/open_command.rb +16 -10
  77. data/lib/rubygems/commands/owner_command.rb +21 -7
  78. data/lib/rubygems/commands/pristine_command.rb +23 -16
  79. data/lib/rubygems/commands/push_command.rb +19 -8
  80. data/lib/rubygems/commands/query_command.rb +24 -24
  81. data/lib/rubygems/commands/rdoc_command.rb +3 -4
  82. data/lib/rubygems/commands/search_command.rb +0 -1
  83. data/lib/rubygems/commands/server_command.rb +1 -2
  84. data/lib/rubygems/commands/setup_command.rb +86 -48
  85. data/lib/rubygems/commands/signin_command.rb +2 -1
  86. data/lib/rubygems/commands/signout_command.rb +2 -2
  87. data/lib/rubygems/commands/sources_command.rb +11 -12
  88. data/lib/rubygems/commands/specification_command.rb +7 -7
  89. data/lib/rubygems/commands/uninstall_command.rb +50 -18
  90. data/lib/rubygems/commands/unpack_command.rb +16 -7
  91. data/lib/rubygems/commands/update_command.rb +28 -23
  92. data/lib/rubygems/commands/which_command.rb +5 -8
  93. data/lib/rubygems/commands/yank_command.rb +1 -2
  94. data/lib/rubygems/compatibility.rb +1 -21
  95. data/lib/rubygems/config_file.rb +36 -36
  96. data/lib/rubygems/core_ext/kernel_require.rb +6 -6
  97. data/lib/rubygems/core_ext/kernel_warn.rb +45 -0
  98. data/lib/rubygems/defaults.rb +31 -19
  99. data/lib/rubygems/dependency.rb +15 -15
  100. data/lib/rubygems/dependency_installer.rb +30 -33
  101. data/lib/rubygems/dependency_list.rb +9 -10
  102. data/lib/rubygems/deprecate.rb +2 -3
  103. data/lib/rubygems/doctor.rb +5 -6
  104. data/lib/rubygems/errors.rb +3 -3
  105. data/lib/rubygems/exceptions.rb +11 -8
  106. data/lib/rubygems/ext/build_error.rb +0 -1
  107. data/lib/rubygems/ext/builder.rb +50 -23
  108. data/lib/rubygems/ext/cmake_builder.rb +2 -2
  109. data/lib/rubygems/ext/configure_builder.rb +2 -3
  110. data/lib/rubygems/ext/ext_conf_builder.rb +8 -7
  111. data/lib/rubygems/ext/rake_builder.rb +16 -18
  112. data/lib/rubygems/ext.rb +0 -1
  113. data/lib/rubygems/gem_runner.rb +2 -2
  114. data/lib/rubygems/gemcutter_utilities.rb +46 -12
  115. data/lib/rubygems/indexer.rb +19 -12
  116. data/lib/rubygems/install_default_message.rb +0 -1
  117. data/lib/rubygems/install_message.rb +0 -1
  118. data/lib/rubygems/install_update_options.rb +3 -29
  119. data/lib/rubygems/installer.rb +97 -55
  120. data/lib/rubygems/installer_test_case.rb +2 -16
  121. data/lib/rubygems/local_remote_options.rb +5 -4
  122. data/lib/rubygems/mock_gem_ui.rb +3 -4
  123. data/lib/rubygems/name_tuple.rb +4 -4
  124. data/lib/rubygems/package/digest_io.rb +3 -4
  125. data/lib/rubygems/package/file_source.rb +3 -4
  126. data/lib/rubygems/package/io_source.rb +1 -2
  127. data/lib/rubygems/package/old.rb +8 -16
  128. data/lib/rubygems/package/source.rb +0 -1
  129. data/lib/rubygems/package/tar_header.rb +13 -4
  130. data/lib/rubygems/package/tar_reader/entry.rb +20 -4
  131. data/lib/rubygems/package/tar_reader.rb +2 -4
  132. data/lib/rubygems/package/tar_test_case.rb +2 -8
  133. data/lib/rubygems/package/tar_writer.rb +13 -15
  134. data/lib/rubygems/package.rb +90 -63
  135. data/lib/rubygems/package_task.rb +0 -1
  136. data/lib/rubygems/path_support.rb +16 -6
  137. data/lib/rubygems/platform.rb +4 -5
  138. data/lib/rubygems/psych_tree.rb +1 -1
  139. data/lib/rubygems/rdoc.rb +2 -313
  140. data/lib/rubygems/remote_fetcher.rb +29 -82
  141. data/lib/rubygems/request/connection_pools.rb +24 -13
  142. data/lib/rubygems/request/http_pool.rb +3 -4
  143. data/lib/rubygems/request/https_pool.rb +1 -3
  144. data/lib/rubygems/request.rb +17 -16
  145. data/lib/rubygems/request_set/gem_dependency_api.rb +46 -49
  146. data/lib/rubygems/request_set/lockfile/parser.rb +18 -29
  147. data/lib/rubygems/request_set/lockfile/tokenizer.rb +9 -9
  148. data/lib/rubygems/request_set/lockfile.rb +12 -12
  149. data/lib/rubygems/request_set.rb +52 -25
  150. data/lib/rubygems/requirement.rb +32 -21
  151. data/lib/rubygems/resolver/activation_request.rb +6 -6
  152. data/lib/rubygems/resolver/api_set.rb +5 -6
  153. data/lib/rubygems/resolver/api_specification.rb +2 -3
  154. data/lib/rubygems/resolver/best_set.rb +5 -6
  155. data/lib/rubygems/resolver/composed_set.rb +5 -6
  156. data/lib/rubygems/resolver/conflict.rb +5 -5
  157. data/lib/rubygems/resolver/current_set.rb +1 -2
  158. data/lib/rubygems/resolver/dependency_request.rb +4 -4
  159. data/lib/rubygems/resolver/git_set.rb +5 -6
  160. data/lib/rubygems/resolver/git_specification.rb +4 -5
  161. data/lib/rubygems/resolver/index_set.rb +5 -6
  162. data/lib/rubygems/resolver/index_specification.rb +3 -4
  163. data/lib/rubygems/resolver/installed_specification.rb +3 -4
  164. data/lib/rubygems/resolver/installer_set.rb +12 -12
  165. data/lib/rubygems/resolver/local_specification.rb +1 -2
  166. data/lib/rubygems/resolver/lock_set.rb +5 -6
  167. data/lib/rubygems/resolver/lock_specification.rb +7 -8
  168. data/lib/rubygems/resolver/requirement_list.rb +1 -1
  169. data/lib/rubygems/resolver/set.rb +2 -2
  170. data/lib/rubygems/resolver/source_set.rb +4 -5
  171. data/lib/rubygems/resolver/spec_specification.rb +1 -2
  172. data/lib/rubygems/resolver/specification.rb +10 -7
  173. data/lib/rubygems/resolver/stats.rb +1 -1
  174. data/lib/rubygems/resolver/vendor_set.rb +4 -5
  175. data/lib/rubygems/resolver/vendor_specification.rb +2 -3
  176. data/lib/rubygems/resolver.rb +14 -16
  177. data/lib/rubygems/s3_uri_signer.rb +183 -0
  178. data/lib/rubygems/safe_yaml.rb +18 -10
  179. data/lib/rubygems/security/policies.rb +1 -2
  180. data/lib/rubygems/security/policy.rb +25 -25
  181. data/lib/rubygems/security/signer.rb +72 -24
  182. data/lib/rubygems/security/trust_dir.rb +10 -10
  183. data/lib/rubygems/security.rb +21 -22
  184. data/lib/rubygems/security_option.rb +0 -1
  185. data/lib/rubygems/server.rb +21 -21
  186. data/lib/rubygems/source/git.rb +9 -10
  187. data/lib/rubygems/source/installed.rb +3 -4
  188. data/lib/rubygems/source/local.rb +7 -7
  189. data/lib/rubygems/source/lock.rb +4 -4
  190. data/lib/rubygems/source/specific_file.rb +5 -5
  191. data/lib/rubygems/source/vendor.rb +2 -3
  192. data/lib/rubygems/source.rb +16 -25
  193. data/lib/rubygems/source_list.rb +2 -2
  194. data/lib/rubygems/source_local.rb +0 -1
  195. data/lib/rubygems/spec_fetcher.rb +5 -6
  196. data/lib/rubygems/specification.rb +219 -558
  197. data/lib/rubygems/specification_policy.rb +407 -0
  198. data/lib/rubygems/stub_specification.rb +12 -17
  199. data/lib/rubygems/test_case.rb +161 -75
  200. data/lib/rubygems/test_utilities.rb +20 -35
  201. data/lib/rubygems/text.rb +6 -6
  202. data/lib/rubygems/uninstaller.rb +38 -27
  203. data/lib/rubygems/uri_formatter.rb +1 -2
  204. data/lib/rubygems/user_interaction.rb +37 -89
  205. data/lib/rubygems/util/licenses.rb +27 -1
  206. data/lib/rubygems/util/list.rb +1 -1
  207. data/lib/rubygems/util.rb +32 -14
  208. data/lib/rubygems/validator.rb +4 -5
  209. data/lib/rubygems/version.rb +15 -15
  210. data/lib/rubygems/version_option.rb +2 -3
  211. data/lib/rubygems.rb +71 -102
  212. data/rubygems-update.gemspec +43 -0
  213. data/setup.rb +2 -8
  214. data/test/rubygems/ca_cert.pem +74 -65
  215. data/test/rubygems/client.pem +103 -45
  216. data/test/rubygems/rubygems_plugin.rb +0 -1
  217. data/test/rubygems/simple_gem.rb +1 -1
  218. data/test/rubygems/ssl_cert.pem +78 -17
  219. data/test/rubygems/ssl_key.pem +25 -13
  220. data/test/rubygems/test_bundled_ca.rb +1 -1
  221. data/test/rubygems/test_config.rb +7 -2
  222. data/test/rubygems/test_gem.rb +205 -132
  223. data/test/rubygems/test_gem_bundler_version_finder.rb +4 -0
  224. data/test/rubygems/test_gem_command.rb +0 -1
  225. data/test/rubygems/test_gem_command_manager.rb +18 -3
  226. data/test/rubygems/test_gem_commands_build_command.rb +220 -15
  227. data/test/rubygems/test_gem_commands_cert_command.rb +69 -8
  228. data/test/rubygems/test_gem_commands_check_command.rb +1 -1
  229. data/test/rubygems/test_gem_commands_cleanup_command.rb +27 -1
  230. data/test/rubygems/test_gem_commands_contents_command.rb +1 -2
  231. data/test/rubygems/test_gem_commands_dependency_command.rb +33 -34
  232. data/test/rubygems/test_gem_commands_environment_command.rb +1 -0
  233. data/test/rubygems/test_gem_commands_fetch_command.rb +0 -1
  234. data/test/rubygems/test_gem_commands_generate_index_command.rb +0 -1
  235. data/test/rubygems/test_gem_commands_help_command.rb +7 -4
  236. data/test/rubygems/test_gem_commands_info_command.rb +44 -0
  237. data/test/rubygems/test_gem_commands_install_command.rb +79 -12
  238. data/test/rubygems/test_gem_commands_lock_command.rb +0 -1
  239. data/test/rubygems/test_gem_commands_open_command.rb +29 -0
  240. data/test/rubygems/test_gem_commands_outdated_command.rb +0 -1
  241. data/test/rubygems/test_gem_commands_owner_command.rb +93 -57
  242. data/test/rubygems/test_gem_commands_pristine_command.rb +65 -30
  243. data/test/rubygems/test_gem_commands_push_command.rb +54 -0
  244. data/test/rubygems/test_gem_commands_query_command.rb +102 -100
  245. data/test/rubygems/test_gem_commands_search_command.rb +0 -1
  246. data/test/rubygems/test_gem_commands_server_command.rb +0 -1
  247. data/test/rubygems/test_gem_commands_setup_command.rb +50 -15
  248. data/test/rubygems/test_gem_commands_signin_command.rb +1 -1
  249. data/test/rubygems/test_gem_commands_sources_command.rb +0 -1
  250. data/test/rubygems/test_gem_commands_specification_command.rb +2 -3
  251. data/test/rubygems/test_gem_commands_stale_command.rb +3 -2
  252. data/test/rubygems/test_gem_commands_uninstall_command.rb +161 -8
  253. data/test/rubygems/test_gem_commands_unpack_command.rb +17 -1
  254. data/test/rubygems/test_gem_commands_update_command.rb +19 -2
  255. data/test/rubygems/test_gem_commands_which_command.rb +0 -1
  256. data/test/rubygems/test_gem_commands_yank_command.rb +0 -1
  257. data/test/rubygems/test_gem_config_file.rb +4 -2
  258. data/test/rubygems/test_gem_dependency.rb +0 -1
  259. data/test/rubygems/test_gem_dependency_installer.rb +8 -5
  260. data/test/rubygems/test_gem_dependency_list.rb +6 -7
  261. data/test/rubygems/test_gem_dependency_resolution_error.rb +0 -1
  262. data/test/rubygems/test_gem_doctor.rb +1 -2
  263. data/test/rubygems/test_gem_ext_builder.rb +10 -23
  264. data/test/rubygems/test_gem_ext_cmake_builder.rb +5 -4
  265. data/test/rubygems/test_gem_ext_configure_builder.rb +3 -3
  266. data/test/rubygems/test_gem_ext_ext_conf_builder.rb +8 -9
  267. data/test/rubygems/test_gem_ext_rake_builder.rb +20 -5
  268. data/test/rubygems/test_gem_gem_runner.rb +0 -1
  269. data/test/rubygems/test_gem_gemcutter_utilities.rb +32 -6
  270. data/test/rubygems/test_gem_impossible_dependencies_error.rb +0 -1
  271. data/test/rubygems/test_gem_indexer.rb +16 -10
  272. data/test/rubygems/test_gem_install_update_options.rb +1 -20
  273. data/test/rubygems/test_gem_installer.rb +154 -119
  274. data/test/rubygems/test_gem_local_remote_options.rb +3 -3
  275. data/test/rubygems/test_gem_name_tuple.rb +0 -1
  276. data/test/rubygems/test_gem_package.rb +77 -31
  277. data/test/rubygems/test_gem_package_old.rb +0 -1
  278. data/test/rubygems/test_gem_package_tar_header.rb +42 -2
  279. data/test/rubygems/test_gem_package_tar_reader.rb +0 -1
  280. data/test/rubygems/test_gem_package_tar_reader_entry.rb +11 -0
  281. data/test/rubygems/test_gem_package_tar_writer.rb +43 -7
  282. data/test/rubygems/test_gem_package_task.rb +2 -2
  283. data/test/rubygems/test_gem_path_support.rb +28 -11
  284. data/test/rubygems/test_gem_platform.rb +4 -5
  285. data/test/rubygems/test_gem_rdoc.rb +1 -136
  286. data/test/rubygems/test_gem_remote_fetcher.rb +241 -141
  287. data/test/rubygems/test_gem_request.rb +9 -9
  288. data/test/rubygems/test_gem_request_connection_pools.rb +24 -3
  289. data/test/rubygems/test_gem_request_set.rb +5 -5
  290. data/test/rubygems/test_gem_request_set_gem_dependency_api.rb +82 -64
  291. data/test/rubygems/test_gem_request_set_lockfile.rb +1 -2
  292. data/test/rubygems/test_gem_request_set_lockfile_parser.rb +4 -9
  293. data/test/rubygems/test_gem_request_set_lockfile_tokenizer.rb +1 -1
  294. data/test/rubygems/test_gem_requirement.rb +24 -4
  295. data/test/rubygems/test_gem_resolver.rb +13 -17
  296. data/test/rubygems/test_gem_resolver_activation_request.rb +0 -1
  297. data/test/rubygems/test_gem_resolver_api_set.rb +0 -1
  298. data/test/rubygems/test_gem_resolver_api_specification.rb +0 -1
  299. data/test/rubygems/test_gem_resolver_best_set.rb +0 -1
  300. data/test/rubygems/test_gem_resolver_composed_set.rb +0 -1
  301. data/test/rubygems/test_gem_resolver_conflict.rb +0 -1
  302. data/test/rubygems/test_gem_resolver_dependency_request.rb +0 -1
  303. data/test/rubygems/test_gem_resolver_git_set.rb +0 -1
  304. data/test/rubygems/test_gem_resolver_git_specification.rb +0 -1
  305. data/test/rubygems/test_gem_resolver_index_set.rb +0 -1
  306. data/test/rubygems/test_gem_resolver_index_specification.rb +0 -1
  307. data/test/rubygems/test_gem_resolver_installed_specification.rb +0 -1
  308. data/test/rubygems/test_gem_resolver_installer_set.rb +2 -3
  309. data/test/rubygems/test_gem_resolver_local_specification.rb +0 -1
  310. data/test/rubygems/test_gem_resolver_lock_set.rb +0 -1
  311. data/test/rubygems/test_gem_resolver_lock_specification.rb +0 -1
  312. data/test/rubygems/test_gem_resolver_requirement_list.rb +0 -1
  313. data/test/rubygems/test_gem_resolver_specification.rb +1 -2
  314. data/test/rubygems/test_gem_resolver_vendor_set.rb +0 -1
  315. data/test/rubygems/test_gem_resolver_vendor_specification.rb +0 -1
  316. data/test/rubygems/test_gem_security.rb +1 -3
  317. data/test/rubygems/test_gem_security_policy.rb +5 -6
  318. data/test/rubygems/test_gem_security_signer.rb +4 -3
  319. data/test/rubygems/test_gem_security_trust_dir.rb +1 -2
  320. data/test/rubygems/test_gem_server.rb +4 -4
  321. data/test/rubygems/test_gem_source.rb +0 -13
  322. data/test/rubygems/test_gem_source_fetch_problem.rb +0 -1
  323. data/test/rubygems/test_gem_source_git.rb +0 -1
  324. data/test/rubygems/test_gem_source_installed.rb +0 -1
  325. data/test/rubygems/test_gem_source_lock.rb +0 -1
  326. data/test/rubygems/test_gem_source_vendor.rb +0 -1
  327. data/test/rubygems/test_gem_spec_fetcher.rb +0 -1
  328. data/test/rubygems/test_gem_specification.rb +366 -198
  329. data/test/rubygems/test_gem_stream_ui.rb +15 -32
  330. data/test/rubygems/test_gem_stub_specification.rb +0 -2
  331. data/test/rubygems/test_gem_text.rb +4 -0
  332. data/test/rubygems/test_gem_uninstaller.rb +42 -3
  333. data/test/rubygems/test_gem_unsatisfiable_dependency_error.rb +0 -1
  334. data/test/rubygems/test_gem_uri_formatter.rb +0 -1
  335. data/test/rubygems/test_gem_util.rb +31 -11
  336. data/test/rubygems/test_gem_validator.rb +0 -1
  337. data/test/rubygems/test_gem_version.rb +11 -11
  338. data/test/rubygems/test_gem_version_option.rb +0 -1
  339. data/test/rubygems/test_remote_fetch_error.rb +0 -1
  340. data/test/rubygems/test_require.rb +67 -52
  341. data/util/CL2notes +1 -2
  342. data/util/ci +20 -12
  343. data/util/cops/deprecations.rb +52 -0
  344. data/util/create_certs.rb +6 -7
  345. data/util/create_certs.sh +27 -0
  346. data/util/create_encrypted_key.rb +4 -5
  347. data/util/patch_with_prs.rb +1 -1
  348. data/util/rubocop +8 -0
  349. data/util/update_bundled_ca_certificates.rb +12 -13
  350. data/util/update_changelog.rb +1 -1
  351. metadata +61 -51
  352. data/.autotest +0 -71
  353. data/.document +0 -5
  354. data/CONTRIBUTING.rdoc +0 -130
  355. data/CVE-2013-4287.txt +0 -35
  356. data/CVE-2013-4363.txt +0 -45
  357. data/CVE-2015-3900.txt +0 -40
  358. data/POLICIES.rdoc +0 -74
  359. data/test/rubygems/fix_openssl_warnings.rb +0 -13
@@ -2,7 +2,7 @@
2
2
  # TODO: $SAFE = 1
3
3
 
4
4
  begin
5
- gem 'minitest', '~> 4.0'
5
+ gem 'minitest', '~> 5.0'
6
6
  rescue NoMethodError, Gem::LoadError
7
7
  # for ruby tests
8
8
  end
@@ -13,11 +13,30 @@ else
13
13
  require 'rubygems'
14
14
  end
15
15
 
16
+ # If bundler gemspec exists, add to stubs
17
+ bundler_gemspec = File.expand_path("../../../bundler/bundler.gemspec", __FILE__)
18
+ if File.exist?(bundler_gemspec)
19
+ Gem::Specification.dirs.unshift File.dirname(bundler_gemspec)
20
+ Gem::Specification.class_variable_set :@@stubs, nil
21
+ Gem::Specification.stubs
22
+ Gem::Specification.dirs.shift
23
+ end
24
+
16
25
  begin
17
26
  gem 'minitest'
18
27
  rescue Gem::LoadError
19
28
  end
20
29
 
30
+ begin
31
+ require 'simplecov'
32
+ SimpleCov.start do
33
+ add_filter "/test/"
34
+ add_filter "/bundler/"
35
+ add_filter "/lib/rubygems/resolver/molinillo"
36
+ end
37
+ rescue LoadError
38
+ end
39
+
21
40
  # We have to load these up front because otherwise we'll try to load
22
41
  # them while we're testing rubygems, and thus we can't actually load them.
23
42
  unless Gem::Dependency.new('rdoc', '>= 3.10').matching_specs.empty?
@@ -65,7 +84,7 @@ module Gem
65
84
  # Allows setting path to Ruby. This method is available when requiring
66
85
  # 'rubygems/test_case'
67
86
 
68
- def self.ruby= ruby
87
+ def self.ruby=(ruby)
69
88
  @ruby = ruby
70
89
  end
71
90
 
@@ -96,7 +115,9 @@ class Gem::TestCase < (defined?(Minitest::Test) ? Minitest::Test : MiniTest::Uni
96
115
 
97
116
  attr_accessor :uri # :nodoc:
98
117
 
99
- def assert_activate expected, *specs
118
+ TEST_PATH = ENV.fetch('RUBYGEMS_TEST_PATH', File.expand_path('../../../test/rubygems', __FILE__))
119
+
120
+ def assert_activate(expected, *specs)
100
121
  specs.each do |spec|
101
122
  case spec
102
123
  when String then
@@ -114,22 +135,28 @@ class Gem::TestCase < (defined?(Minitest::Test) ? Minitest::Test : MiniTest::Uni
114
135
  end
115
136
 
116
137
  # TODO: move to minitest
117
- def assert_path_exists path, msg = nil
138
+ def assert_path_exists(path, msg = nil)
118
139
  msg = message(msg) { "Expected path '#{path}' to exist" }
119
140
  assert File.exist?(path), msg
120
141
  end
121
142
 
143
+ def assert_directory_exists(path, msg = nil)
144
+ msg = message(msg) { "Expected path '#{path}' to be a directory" }
145
+ assert_path_exists path
146
+ assert File.directory?(path), msg
147
+ end
148
+
122
149
  ##
123
150
  # Sets the ENABLE_SHARED entry in RbConfig::CONFIG to +value+ and restores
124
151
  # the original value when the block ends
125
152
 
126
- def enable_shared value
153
+ def enable_shared(value)
127
154
  enable_shared = RbConfig::CONFIG['ENABLE_SHARED']
128
155
  RbConfig::CONFIG['ENABLE_SHARED'] = value
129
156
 
130
157
  yield
131
158
  ensure
132
- if enable_shared then
159
+ if enable_shared
133
160
  RbConfig::CONFIG['enable_shared'] = enable_shared
134
161
  else
135
162
  RbConfig::CONFIG.delete 'enable_shared'
@@ -137,7 +164,7 @@ class Gem::TestCase < (defined?(Minitest::Test) ? Minitest::Test : MiniTest::Uni
137
164
  end
138
165
 
139
166
  # TODO: move to minitest
140
- def refute_path_exists path, msg = nil
167
+ def refute_path_exists(path, msg = nil)
141
168
  msg = message(msg) { "Expected path '#{path}' to not exist" }
142
169
  refute File.exist?(path), msg
143
170
  end
@@ -235,6 +262,8 @@ class Gem::TestCase < (defined?(Minitest::Test) ? Minitest::Test : MiniTest::Uni
235
262
  @orig_gem_env_requirements = ENV.to_hash
236
263
 
237
264
  ENV['GEM_VENDOR'] = nil
265
+ ENV['GEMRC'] = nil
266
+ ENV['SOURCE_DATE_EPOCH'] = nil
238
267
 
239
268
  @current_dir = Dir.pwd
240
269
  @fetcher = nil
@@ -251,7 +280,7 @@ class Gem::TestCase < (defined?(Minitest::Test) ? Minitest::Test : MiniTest::Uni
251
280
  tmpdir = File.expand_path Dir.tmpdir
252
281
  tmpdir.untaint
253
282
 
254
- if ENV['KEEP_FILES'] then
283
+ if ENV['KEEP_FILES']
255
284
  @tempdir = File.join(tmpdir, "test_rubygems_#{$$}.#{Time.now.to_i}")
256
285
  else
257
286
  @tempdir = File.join(tmpdir, "test_rubygems_#{$$}")
@@ -285,7 +314,7 @@ class Gem::TestCase < (defined?(Minitest::Test) ? Minitest::Test : MiniTest::Uni
285
314
  @userhome = File.join @tempdir, 'userhome'
286
315
  ENV["GEM_SPEC_CACHE"] = File.join @tempdir, 'spec_cache'
287
316
 
288
- @orig_ruby = if ENV['RUBY'] then
317
+ @orig_ruby = if ENV['RUBY']
289
318
  ruby = Gem.ruby
290
319
  Gem.ruby = ENV['RUBY']
291
320
  ruby
@@ -372,6 +401,11 @@ class Gem::TestCase < (defined?(Minitest::Test) ? Minitest::Test : MiniTest::Uni
372
401
  util_set_arch 'i686-darwin8.10.1'
373
402
  end
374
403
 
404
+ @orig_hooks = {}
405
+ %w[post_install_hooks done_installing_hooks post_uninstall_hooks pre_uninstall_hooks pre_install_hooks pre_reset_hooks post_reset_hooks post_build_hooks].each do |name|
406
+ @orig_hooks[name] = Gem.send(name).dup
407
+ end
408
+
375
409
  @marshal_version = "#{Marshal::MAJOR_VERSION}.#{Marshal::MINOR_VERSION}"
376
410
  @orig_LOADED_FEATURES = $LOADED_FEATURES.dup
377
411
  end
@@ -402,7 +436,7 @@ class Gem::TestCase < (defined?(Minitest::Test) ? Minitest::Test : MiniTest::Uni
402
436
  end
403
437
  RbConfig::CONFIG['arch'] = @orig_arch
404
438
 
405
- if defined? Gem::RemoteFetcher then
439
+ if defined? Gem::RemoteFetcher
406
440
  Gem::RemoteFetcher.fetcher = nil
407
441
  end
408
442
 
@@ -425,7 +459,7 @@ class Gem::TestCase < (defined?(Minitest::Test) ? Minitest::Test : MiniTest::Uni
425
459
 
426
460
  Gem.ruby = @orig_ruby if @orig_ruby
427
461
 
428
- if @orig_ENV_HOME then
462
+ if @orig_ENV_HOME
429
463
  ENV['HOME'] = @orig_ENV_HOME
430
464
  else
431
465
  ENV.delete 'HOME'
@@ -439,6 +473,10 @@ class Gem::TestCase < (defined?(Minitest::Test) ? Minitest::Test : MiniTest::Uni
439
473
  Gem::Specification.unresolved_deps.clear
440
474
  Gem::refresh
441
475
 
476
+ @orig_hooks.each do |name, hooks|
477
+ Gem.send(name).replace hooks
478
+ end
479
+
442
480
  @back_ui.close
443
481
  end
444
482
 
@@ -485,7 +523,7 @@ class Gem::TestCase < (defined?(Minitest::Test) ? Minitest::Test : MiniTest::Uni
485
523
  #
486
524
  # Yields the +specification+ to the block, if given
487
525
 
488
- def git_gem name = 'a', version = 1
526
+ def git_gem(name = 'a', version = 1)
489
527
  have_git?
490
528
 
491
529
  directory = File.join 'git', name
@@ -506,7 +544,7 @@ class Gem::TestCase < (defined?(Minitest::Test) ? Minitest::Test : MiniTest::Uni
506
544
  head = nil
507
545
 
508
546
  Dir.chdir directory do
509
- unless File.exist? '.git' then
547
+ unless File.exist? '.git'
510
548
  system @git, 'init', '--quiet'
511
549
  system @git, 'config', 'user.name', 'RubyGems Tests'
512
550
  system @git, 'config', 'user.email', 'rubygems@example'
@@ -529,7 +567,7 @@ class Gem::TestCase < (defined?(Minitest::Test) ? Minitest::Test : MiniTest::Uni
529
567
  skip 'cannot find git executable, use GIT environment variable to set'
530
568
  end
531
569
 
532
- def in_path? executable # :nodoc:
570
+ def in_path?(executable) # :nodoc:
533
571
  return true if %r%\A([A-Z]:|/)% =~ executable and File.exist? executable
534
572
 
535
573
  ENV['PATH'].split(File::PATH_SEPARATOR).any? do |directory|
@@ -540,12 +578,12 @@ class Gem::TestCase < (defined?(Minitest::Test) ? Minitest::Test : MiniTest::Uni
540
578
  ##
541
579
  # Builds and installs the Gem::Specification +spec+
542
580
 
543
- def install_gem spec, options = {}
581
+ def install_gem(spec, options = {})
544
582
  require 'rubygems/installer'
545
583
 
546
584
  gem = File.join @tempdir, "gems", "#{spec.full_name}.gem"
547
585
 
548
- unless File.exist? gem then
586
+ unless File.exist? gem
549
587
  use_ui Gem::MockGemUi.new do
550
588
  Dir.chdir @tempdir do
551
589
  Gem::Package.build spec
@@ -561,17 +599,17 @@ class Gem::TestCase < (defined?(Minitest::Test) ? Minitest::Test : MiniTest::Uni
561
599
  ##
562
600
  # Builds and installs the Gem::Specification +spec+ into the user dir
563
601
 
564
- def install_gem_user spec
602
+ def install_gem_user(spec)
565
603
  install_gem spec, :user_install => true
566
604
  end
567
605
 
568
606
  ##
569
607
  # Uninstalls the Gem::Specification +spec+
570
- def uninstall_gem spec
608
+ def uninstall_gem(spec)
571
609
  require 'rubygems/uninstaller'
572
610
 
573
611
  Class.new(Gem::Uninstaller) {
574
- def ask_if_ok spec
612
+ def ask_if_ok(spec)
575
613
  true
576
614
  end
577
615
  }.new(spec.name, :executables => true, :user_install => true).uninstall
@@ -595,7 +633,7 @@ class Gem::TestCase < (defined?(Minitest::Test) ? Minitest::Test : MiniTest::Uni
595
633
  def mu_pp(obj)
596
634
  s = String.new
597
635
  s = PP.pp obj, s
598
- s = s.force_encoding(Encoding.default_external) if defined? Encoding
636
+ s = s.force_encoding(Encoding.default_external)
599
637
  s.chomp
600
638
  end
601
639
 
@@ -676,7 +714,7 @@ class Gem::TestCase < (defined?(Minitest::Test) ? Minitest::Test : MiniTest::Uni
676
714
  ##
677
715
  # TODO: remove in RubyGems 4.0
678
716
 
679
- def quick_spec name, version = '2' # :nodoc:
717
+ def quick_spec(name, version = '2') # :nodoc:
680
718
  util_spec name, version
681
719
  end
682
720
  deprecate :quick_spec, :util_spec, 2018, 12
@@ -715,13 +753,18 @@ class Gem::TestCase < (defined?(Minitest::Test) ? Minitest::Test : MiniTest::Uni
715
753
  # Removes all installed gems from +@gemhome+.
716
754
 
717
755
  def util_clear_gems
718
- FileUtils.rm_rf File.join(@gemhome, "gems") # TODO: use Gem::Dirs
756
+ FileUtils.rm_rf File.join(@gemhome, "gems")
719
757
  FileUtils.mkdir File.join(@gemhome, "gems")
720
758
  FileUtils.rm_rf File.join(@gemhome, "specifications")
721
759
  FileUtils.mkdir File.join(@gemhome, "specifications")
722
760
  Gem::Specification.reset
723
761
  end
724
762
 
763
+ def util_clear_default_gems
764
+ FileUtils.rm_rf @default_spec_dir
765
+ FileUtils.mkdir @default_spec_dir
766
+ end
767
+
725
768
  ##
726
769
  # Install the provided specs
727
770
 
@@ -780,7 +823,7 @@ class Gem::TestCase < (defined?(Minitest::Test) ? Minitest::Test : MiniTest::Uni
780
823
  #
781
824
  # TODO: remove in RubyGems 4.0
782
825
 
783
- def new_spec name, version, deps = nil, *files # :nodoc:
826
+ def new_spec(name, version, deps = nil, *files) # :nodoc:
784
827
  require 'rubygems/specification'
785
828
 
786
829
  spec = Gem::Specification.new do |s|
@@ -804,7 +847,7 @@ class Gem::TestCase < (defined?(Minitest::Test) ? Minitest::Test : MiniTest::Uni
804
847
 
805
848
  spec.loaded_from = spec.spec_file
806
849
 
807
- unless files.empty? then
850
+ unless files.empty?
808
851
  write_file spec.spec_file do |io|
809
852
  io.write spec.to_ruby_for_cache
810
853
  end
@@ -819,8 +862,7 @@ class Gem::TestCase < (defined?(Minitest::Test) ? Minitest::Test : MiniTest::Uni
819
862
 
820
863
  spec
821
864
  end
822
- # TODO: mark deprecate after replacing util_spec from new_spec
823
- # deprecate :new_spec, :none, 2018, 12
865
+ deprecate :new_spec, :none, 2018, 12
824
866
 
825
867
  def new_default_spec(name, version, deps = nil, *files)
826
868
  spec = util_spec name, version, deps
@@ -845,7 +887,7 @@ class Gem::TestCase < (defined?(Minitest::Test) ? Minitest::Test : MiniTest::Uni
845
887
  # Creates a spec with +name+, +version+. +deps+ can specify the dependency
846
888
  # or a +block+ can be given for full customization of the specification.
847
889
 
848
- def util_spec name, version = 2, deps = nil # :yields: specification
890
+ def util_spec(name, version = 2, deps = nil, *files) # :yields: specification
849
891
  raise "deps or block, not both" if deps and block_given?
850
892
 
851
893
  spec = Gem::Specification.new do |s|
@@ -858,10 +900,12 @@ class Gem::TestCase < (defined?(Minitest::Test) ? Minitest::Test : MiniTest::Uni
858
900
  s.summary = "this is a summary"
859
901
  s.description = "This is a test description"
860
902
 
903
+ s.files.push(*files) unless files.empty?
904
+
861
905
  yield s if block_given?
862
906
  end
863
907
 
864
- if deps then
908
+ if deps
865
909
  # Since Hash#each is unordered in 1.8, sort the keys and iterate that
866
910
  # way so the tests are deterministic on all implementations.
867
911
  deps.keys.sort.each do |n|
@@ -869,6 +913,19 @@ class Gem::TestCase < (defined?(Minitest::Test) ? Minitest::Test : MiniTest::Uni
869
913
  end
870
914
  end
871
915
 
916
+ unless files.empty?
917
+ write_file spec.spec_file do |io|
918
+ io.write spec.to_ruby_for_cache
919
+ end
920
+
921
+ util_build_gem spec
922
+
923
+ cache_file = File.join @tempdir, 'gems', "#{spec.full_name}.gem"
924
+ FileUtils.mkdir_p File.dirname cache_file
925
+ FileUtils.mv spec.cache_file, cache_file
926
+ FileUtils.rm spec.spec_file
927
+ end
928
+
872
929
  Gem::Specification.reset
873
930
 
874
931
  return spec
@@ -881,10 +938,7 @@ class Gem::TestCase < (defined?(Minitest::Test) ? Minitest::Test : MiniTest::Uni
881
938
  # location are returned.
882
939
 
883
940
  def util_gem(name, version, deps = nil, &block)
884
- # TODO: deprecate
885
- raise "deps or block, not both" if deps and block
886
-
887
- if deps then
941
+ if deps
888
942
  block = proc do |s|
889
943
  # Since Hash#each is unordered in 1.8, sort
890
944
  # the keys and iterate that way so the tests are
@@ -1014,6 +1068,8 @@ Also, a list:
1014
1068
  Gem.instance_variable_set :@platforms, nil
1015
1069
  Gem::Platform.instance_variable_set :@local, nil
1016
1070
 
1071
+ yield if block_given?
1072
+
1017
1073
  platform
1018
1074
  end
1019
1075
 
@@ -1080,7 +1136,7 @@ Also, a list:
1080
1136
  end
1081
1137
 
1082
1138
  # HACK for test_download_to_cache
1083
- unless Gem::RemoteFetcher === @fetcher then
1139
+ unless Gem::RemoteFetcher === @fetcher
1084
1140
  v = Gem.marshal_version
1085
1141
 
1086
1142
  specs = all.map { |spec| spec.name_tuple }
@@ -1119,35 +1175,51 @@ Also, a list:
1119
1175
  Zlib::Deflate.deflate data
1120
1176
  end
1121
1177
 
1122
- def util_set_RUBY_VERSION(version, patchlevel = nil, revision = nil)
1178
+ def util_set_RUBY_VERSION(version, patchlevel = nil, revision = nil, description = nil, engine = "ruby", engine_version = nil)
1123
1179
  if Gem.instance_variables.include? :@ruby_version or
1124
- Gem.instance_variables.include? '@ruby_version' then
1180
+ Gem.instance_variables.include? '@ruby_version'
1125
1181
  Gem.send :remove_instance_variable, :@ruby_version
1126
1182
  end
1127
1183
 
1128
- @RUBY_VERSION = RUBY_VERSION
1129
- @RUBY_PATCHLEVEL = RUBY_PATCHLEVEL if defined?(RUBY_PATCHLEVEL)
1130
- @RUBY_REVISION = RUBY_REVISION if defined?(RUBY_REVISION)
1184
+ @RUBY_VERSION = RUBY_VERSION
1185
+ @RUBY_PATCHLEVEL = RUBY_PATCHLEVEL if defined?(RUBY_PATCHLEVEL)
1186
+ @RUBY_REVISION = RUBY_REVISION if defined?(RUBY_REVISION)
1187
+ @RUBY_DESCRIPTION = RUBY_DESCRIPTION if defined?(RUBY_DESCRIPTION)
1188
+ @RUBY_ENGINE = RUBY_ENGINE
1189
+ @RUBY_ENGINE_VERSION = RUBY_ENGINE_VERSION if defined?(RUBY_ENGINE_VERSION)
1131
1190
 
1132
- Object.send :remove_const, :RUBY_VERSION
1133
- Object.send :remove_const, :RUBY_PATCHLEVEL if defined?(RUBY_PATCHLEVEL)
1134
- Object.send :remove_const, :RUBY_REVISION if defined?(RUBY_REVISION)
1191
+ util_clear_RUBY_VERSION
1135
1192
 
1136
- Object.const_set :RUBY_VERSION, version
1137
- Object.const_set :RUBY_PATCHLEVEL, patchlevel if patchlevel
1138
- Object.const_set :RUBY_REVISION, revision if revision
1193
+ Object.const_set :RUBY_VERSION, version
1194
+ Object.const_set :RUBY_PATCHLEVEL, patchlevel if patchlevel
1195
+ Object.const_set :RUBY_REVISION, revision if revision
1196
+ Object.const_set :RUBY_DESCRIPTION, description if description
1197
+ Object.const_set :RUBY_ENGINE, engine
1198
+ Object.const_set :RUBY_ENGINE_VERSION, engine_version if engine_version
1139
1199
  end
1140
1200
 
1141
1201
  def util_restore_RUBY_VERSION
1142
- Object.send :remove_const, :RUBY_VERSION
1143
- Object.send :remove_const, :RUBY_PATCHLEVEL if defined?(RUBY_PATCHLEVEL)
1144
- Object.send :remove_const, :RUBY_REVISION if defined?(RUBY_REVISION)
1202
+ util_clear_RUBY_VERSION
1145
1203
 
1146
- Object.const_set :RUBY_VERSION, @RUBY_VERSION
1147
- Object.const_set :RUBY_PATCHLEVEL, @RUBY_PATCHLEVEL if
1204
+ Object.const_set :RUBY_VERSION, @RUBY_VERSION
1205
+ Object.const_set :RUBY_PATCHLEVEL, @RUBY_PATCHLEVEL if
1148
1206
  defined?(@RUBY_PATCHLEVEL)
1149
- Object.const_set :RUBY_REVISION, @RUBY_REVISION if
1207
+ Object.const_set :RUBY_REVISION, @RUBY_REVISION if
1150
1208
  defined?(@RUBY_REVISION)
1209
+ Object.const_set :RUBY_DESCRIPTION, @RUBY_DESCRIPTION if
1210
+ defined?(@RUBY_DESCRIPTION)
1211
+ Object.const_set :RUBY_ENGINE, @RUBY_ENGINE
1212
+ Object.const_set :RUBY_ENGINE_VERSION, @RUBY_ENGINE_VERSION if
1213
+ defined?(@RUBY_ENGINE_VERSION)
1214
+ end
1215
+
1216
+ def util_clear_RUBY_VERSION
1217
+ Object.send :remove_const, :RUBY_VERSION
1218
+ Object.send :remove_const, :RUBY_PATCHLEVEL if defined?(RUBY_PATCHLEVEL)
1219
+ Object.send :remove_const, :RUBY_REVISION if defined?(RUBY_REVISION)
1220
+ Object.send :remove_const, :RUBY_DESCRIPTION if defined?(RUBY_DESCRIPTION)
1221
+ Object.send :remove_const, :RUBY_ENGINE
1222
+ Object.send :remove_const, :RUBY_ENGINE_VERSION if defined?(RUBY_ENGINE_VERSION)
1151
1223
  end
1152
1224
 
1153
1225
  ##
@@ -1277,14 +1349,30 @@ Also, a list:
1277
1349
  end
1278
1350
  end
1279
1351
 
1352
+ class << self
1353
+ # :nodoc:
1354
+ ##
1355
+ # Return the join path, with escaping backticks, dollars, and
1356
+ # double-quotes. Unlike `shellescape`, equal-sign is not escaped.
1357
+ private
1358
+ def escape_path(*path)
1359
+ path = File.join(*path)
1360
+ if %r'\A[-+:/=@,.\w]+\z' =~ path
1361
+ path
1362
+ else
1363
+ "\"#{path.gsub(/[`$"]/, '\\&')}\""
1364
+ end
1365
+ end
1366
+ end
1367
+
1280
1368
  @@ruby = rubybin
1281
- @@good_rake = "#{rubybin} \"#{File.expand_path('../../../test/rubygems/good_rake.rb', __FILE__)}\""
1282
- @@bad_rake = "#{rubybin} \"#{File.expand_path('../../../test/rubygems/bad_rake.rb', __FILE__)}\""
1369
+ @@good_rake = "#{rubybin} #{escape_path(TEST_PATH, 'good_rake.rb')}"
1370
+ @@bad_rake = "#{rubybin} #{escape_path(TEST_PATH, 'bad_rake.rb')}"
1283
1371
 
1284
1372
  ##
1285
1373
  # Construct a new Gem::Dependency.
1286
1374
 
1287
- def dep name, *requirements
1375
+ def dep(name, *requirements)
1288
1376
  Gem::Dependency.new name, *requirements
1289
1377
  end
1290
1378
 
@@ -1293,10 +1381,10 @@ Also, a list:
1293
1381
  # Gem::Dependency +dep+, a +from_name+ and +from_version+ requesting the
1294
1382
  # dependency and a +parent+ DependencyRequest
1295
1383
 
1296
- def dependency_request dep, from_name, from_version, parent = nil
1384
+ def dependency_request(dep, from_name, from_version, parent = nil)
1297
1385
  remote = Gem::Source.new @uri
1298
1386
 
1299
- unless parent then
1387
+ unless parent
1300
1388
  parent_dep = dep from_name, from_version
1301
1389
  parent = Gem::Resolver::DependencyRequest.new parent_dep, nil
1302
1390
  end
@@ -1311,7 +1399,7 @@ Also, a list:
1311
1399
  ##
1312
1400
  # Constructs a new Gem::Requirement.
1313
1401
 
1314
- def req *requirements
1402
+ def req(*requirements)
1315
1403
  return requirements.first if Gem::Requirement === requirements.first
1316
1404
  Gem::Requirement.create requirements
1317
1405
  end
@@ -1319,7 +1407,7 @@ Also, a list:
1319
1407
  ##
1320
1408
  # Constructs a new Gem::Specification.
1321
1409
 
1322
- def spec name, version, &block
1410
+ def spec(name, version, &block)
1323
1411
  Gem::Specification.new name, v(version), &block
1324
1412
  end
1325
1413
 
@@ -1343,7 +1431,7 @@ Also, a list:
1343
1431
  # end
1344
1432
  # end
1345
1433
 
1346
- def spec_fetcher repository = @gem_repo
1434
+ def spec_fetcher(repository = @gem_repo)
1347
1435
  Gem::TestCase::SpecFetcherSetup.declare self, repository do |spec_fetcher_setup|
1348
1436
  yield spec_fetcher_setup if block_given?
1349
1437
  end
@@ -1352,7 +1440,7 @@ Also, a list:
1352
1440
  ##
1353
1441
  # Construct a new Gem::Version.
1354
1442
 
1355
- def v string
1443
+ def v(string)
1356
1444
  Gem::Version.create string
1357
1445
  end
1358
1446
 
@@ -1362,7 +1450,7 @@ Also, a list:
1362
1450
  #
1363
1451
  # Yields the +specification+ to the block, if given
1364
1452
 
1365
- def vendor_gem name = 'a', version = 1
1453
+ def vendor_gem(name = 'a', version = 1)
1366
1454
  directory = File.join 'vendor', name
1367
1455
 
1368
1456
  FileUtils.mkdir_p directory
@@ -1376,7 +1464,7 @@ Also, a list:
1376
1464
  #
1377
1465
  # Yields the +specification+ to the block, if given
1378
1466
 
1379
- def save_gemspec name = 'a', version = 1, directory = '.'
1467
+ def save_gemspec(name = 'a', version = 1, directory = '.')
1380
1468
  vendor_spec = Gem::Specification.new name, version do |specification|
1381
1469
  yield specification if block_given?
1382
1470
  end
@@ -1413,7 +1501,7 @@ Also, a list:
1413
1501
  ##
1414
1502
  # Adds +spec+ to this set.
1415
1503
 
1416
- def add spec
1504
+ def add(spec)
1417
1505
  @specs << spec
1418
1506
  end
1419
1507
 
@@ -1437,7 +1525,7 @@ Also, a list:
1437
1525
  # Loads a Gem::Specification from this set which has the given +name+,
1438
1526
  # version +ver+, +platform+. The +source+ is ignored.
1439
1527
 
1440
- def load_spec name, ver, platform, source
1528
+ def load_spec(name, ver, platform, source)
1441
1529
  dep = Gem::Dependency.new name, ver
1442
1530
  spec = find_spec dep
1443
1531
 
@@ -1446,14 +1534,14 @@ Also, a list:
1446
1534
  end
1447
1535
  end
1448
1536
 
1449
- def prefetch reqs # :nodoc:
1537
+ def prefetch(reqs) # :nodoc:
1450
1538
  end
1451
1539
  end
1452
1540
 
1453
1541
  ##
1454
1542
  # Loads certificate named +cert_name+ from <tt>test/rubygems/</tt>.
1455
1543
 
1456
- def self.load_cert cert_name
1544
+ def self.load_cert(cert_name)
1457
1545
  cert_file = cert_path cert_name
1458
1546
 
1459
1547
  cert = File.read cert_file
@@ -1465,22 +1553,20 @@ Also, a list:
1465
1553
  # Returns the path to the certificate named +cert_name+ from
1466
1554
  # <tt>test/rubygems/</tt>.
1467
1555
 
1468
- def self.cert_path cert_name
1469
- if 32 == (Time.at(2**32) rescue 32) then
1470
- cert_file =
1471
- File.expand_path "../../../test/rubygems/#{cert_name}_cert_32.pem",
1472
- __FILE__
1556
+ def self.cert_path(cert_name)
1557
+ if 32 == (Time.at(2**32) rescue 32)
1558
+ cert_file = "#{TEST_PATH}/#{cert_name}_cert_32.pem"
1473
1559
 
1474
1560
  return cert_file if File.exist? cert_file
1475
1561
  end
1476
1562
 
1477
- File.expand_path "../../../test/rubygems/#{cert_name}_cert.pem", __FILE__
1563
+ "#{TEST_PATH}/#{cert_name}_cert.pem"
1478
1564
  end
1479
1565
 
1480
1566
  ##
1481
1567
  # Loads an RSA private key named +key_name+ with +passphrase+ in <tt>test/rubygems/</tt>
1482
1568
 
1483
- def self.load_key key_name, passphrase = nil
1569
+ def self.load_key(key_name, passphrase = nil)
1484
1570
  key_file = key_path key_name
1485
1571
 
1486
1572
  key = File.read key_file
@@ -1491,14 +1577,14 @@ Also, a list:
1491
1577
  ##
1492
1578
  # Returns the path to the key named +key_name+ from <tt>test/rubygems</tt>
1493
1579
 
1494
- def self.key_path key_name
1495
- File.expand_path "../../../test/rubygems/#{key_name}_key.pem", __FILE__
1580
+ def self.key_path(key_name)
1581
+ "#{TEST_PATH}/#{key_name}_key.pem"
1496
1582
  end
1497
1583
 
1498
1584
  # :stopdoc:
1499
1585
  # only available in RubyGems tests
1500
1586
 
1501
- PRIVATE_KEY_PASSPHRASE = 'Foo bar'
1587
+ PRIVATE_KEY_PASSPHRASE = 'Foo bar'.freeze
1502
1588
 
1503
1589
  begin
1504
1590
  PRIVATE_KEY = load_key 'private'