rubygems-update 3.4.22 → 3.5.1

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 (540) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +105 -2
  3. data/Manifest.txt +46 -221
  4. data/README.md +1 -3
  5. data/bundler/CHANGELOG.md +63 -0
  6. data/bundler/bundler.gemspec +4 -2
  7. data/bundler/exe/bundle +1 -10
  8. data/bundler/lib/bundler/build_metadata.rb +3 -3
  9. data/bundler/lib/bundler/capistrano.rb +1 -1
  10. data/bundler/lib/bundler/checksum.rb +254 -0
  11. data/bundler/lib/bundler/ci_detector.rb +75 -0
  12. data/bundler/lib/bundler/cli/add.rb +3 -3
  13. data/bundler/lib/bundler/cli/binstubs.rb +4 -4
  14. data/bundler/lib/bundler/cli/cache.rb +1 -1
  15. data/bundler/lib/bundler/cli/check.rb +1 -1
  16. data/bundler/lib/bundler/cli/common.rb +9 -1
  17. data/bundler/lib/bundler/cli/config.rb +8 -7
  18. data/bundler/lib/bundler/cli/console.rb +3 -2
  19. data/bundler/lib/bundler/cli/doctor.rb +2 -2
  20. data/bundler/lib/bundler/cli/exec.rb +1 -1
  21. data/bundler/lib/bundler/cli/gem.rb +28 -23
  22. data/bundler/lib/bundler/cli/info.rb +2 -13
  23. data/bundler/lib/bundler/cli/install.rb +5 -4
  24. data/bundler/lib/bundler/cli/issue.rb +1 -1
  25. data/bundler/lib/bundler/cli/lock.rb +4 -4
  26. data/bundler/lib/bundler/cli/open.rb +1 -1
  27. data/bundler/lib/bundler/cli/outdated.rb +6 -6
  28. data/bundler/lib/bundler/cli/plugin.rb +7 -14
  29. data/bundler/lib/bundler/cli/pristine.rb +38 -30
  30. data/bundler/lib/bundler/cli/show.rb +2 -2
  31. data/bundler/lib/bundler/cli/update.rb +5 -5
  32. data/bundler/lib/bundler/cli.rb +215 -263
  33. data/bundler/lib/bundler/compact_index_client/cache.rb +29 -9
  34. data/bundler/lib/bundler/compact_index_client/cache_file.rb +153 -0
  35. data/bundler/lib/bundler/compact_index_client/gem_parser.rb +7 -3
  36. data/bundler/lib/bundler/compact_index_client/updater.rb +79 -81
  37. data/bundler/lib/bundler/compact_index_client.rb +14 -7
  38. data/bundler/lib/bundler/constants.rb +1 -1
  39. data/bundler/lib/bundler/current_ruby.rb +5 -21
  40. data/bundler/lib/bundler/definition.rb +42 -15
  41. data/bundler/lib/bundler/dependency.rb +16 -12
  42. data/bundler/lib/bundler/digest.rb +2 -2
  43. data/bundler/lib/bundler/dsl.rb +46 -30
  44. data/bundler/lib/bundler/endpoint_specification.rb +5 -1
  45. data/bundler/lib/bundler/env.rb +1 -3
  46. data/bundler/lib/bundler/errors.rb +43 -0
  47. data/bundler/lib/bundler/fetcher/base.rb +3 -1
  48. data/bundler/lib/bundler/fetcher/compact_index.rb +4 -4
  49. data/bundler/lib/bundler/fetcher/downloader.rb +13 -11
  50. data/bundler/lib/bundler/fetcher/gem_remote_fetcher.rb +16 -0
  51. data/bundler/lib/bundler/fetcher/index.rb +1 -1
  52. data/bundler/lib/bundler/fetcher.rb +28 -25
  53. data/bundler/lib/bundler/friendly_errors.rb +5 -5
  54. data/bundler/lib/bundler/gem_helper.rb +1 -1
  55. data/bundler/lib/bundler/gem_helpers.rb +5 -2
  56. data/bundler/lib/bundler/graph.rb +9 -9
  57. data/bundler/lib/bundler/index.rb +1 -2
  58. data/bundler/lib/bundler/injector.rb +1 -1
  59. data/bundler/lib/bundler/inline.rb +3 -3
  60. data/bundler/lib/bundler/installer/gem_installer.rb +5 -5
  61. data/bundler/lib/bundler/installer/parallel_installer.rb +16 -8
  62. data/bundler/lib/bundler/installer/standalone.rb +2 -3
  63. data/bundler/lib/bundler/installer.rb +9 -9
  64. data/bundler/lib/bundler/lazy_specification.rb +24 -17
  65. data/bundler/lib/bundler/lockfile_generator.rb +9 -0
  66. data/bundler/lib/bundler/lockfile_parser.rb +81 -10
  67. data/bundler/lib/bundler/man/bundle-add.1 +3 -26
  68. data/bundler/lib/bundler/man/bundle-binstubs.1 +4 -16
  69. data/bundler/lib/bundler/man/bundle-cache.1 +3 -24
  70. data/bundler/lib/bundler/man/bundle-check.1 +3 -12
  71. data/bundler/lib/bundler/man/bundle-clean.1 +3 -10
  72. data/bundler/lib/bundler/man/bundle-config.1 +20 -211
  73. data/bundler/lib/bundler/man/bundle-config.1.ronn +6 -0
  74. data/bundler/lib/bundler/man/bundle-console.1 +4 -22
  75. data/bundler/lib/bundler/man/bundle-doctor.1 +4 -18
  76. data/bundler/lib/bundler/man/bundle-exec.1 +12 -73
  77. data/bundler/lib/bundler/man/bundle-gem.1 +13 -49
  78. data/bundler/lib/bundler/man/bundle-help.1 +3 -7
  79. data/bundler/lib/bundler/man/bundle-info.1 +3 -9
  80. data/bundler/lib/bundler/man/bundle-init.1 +3 -12
  81. data/bundler/lib/bundler/man/bundle-inject.1 +6 -19
  82. data/bundler/lib/bundler/man/bundle-install.1 +27 -125
  83. data/bundler/lib/bundler/man/bundle-install.1.ronn +1 -0
  84. data/bundler/lib/bundler/man/bundle-list.1 +4 -19
  85. data/bundler/lib/bundler/man/bundle-lock.1 +5 -29
  86. data/bundler/lib/bundler/man/bundle-open.1 +7 -27
  87. data/bundler/lib/bundler/man/bundle-outdated.1 +3 -55
  88. data/bundler/lib/bundler/man/bundle-outdated.1.ronn +1 -0
  89. data/bundler/lib/bundler/man/bundle-platform.1 +5 -27
  90. data/bundler/lib/bundler/man/bundle-plugin.1 +3 -29
  91. data/bundler/lib/bundler/man/bundle-pristine.1 +5 -16
  92. data/bundler/lib/bundler/man/bundle-remove.1 +4 -14
  93. data/bundler/lib/bundler/man/bundle-show.1 +3 -10
  94. data/bundler/lib/bundler/man/bundle-update.1 +18 -137
  95. data/bundler/lib/bundler/man/bundle-version.1 +3 -16
  96. data/bundler/lib/bundler/man/bundle-viz.1 +4 -16
  97. data/bundler/lib/bundler/man/bundle.1 +5 -44
  98. data/bundler/lib/bundler/man/gemfile.5 +24 -301
  99. data/bundler/lib/bundler/man/gemfile.5.ronn +4 -0
  100. data/bundler/lib/bundler/match_metadata.rb +4 -0
  101. data/bundler/lib/bundler/match_platform.rb +1 -1
  102. data/bundler/lib/bundler/plugin/api/source.rb +3 -2
  103. data/bundler/lib/bundler/plugin/installer.rb +1 -1
  104. data/bundler/lib/bundler/plugin.rb +3 -3
  105. data/bundler/lib/bundler/resolver/base.rb +1 -1
  106. data/bundler/lib/bundler/resolver/incompatibility.rb +1 -1
  107. data/bundler/lib/bundler/resolver/spec_group.rb +1 -4
  108. data/bundler/lib/bundler/resolver.rb +16 -16
  109. data/bundler/lib/bundler/ruby_dsl.rb +20 -12
  110. data/bundler/lib/bundler/ruby_version.rb +1 -1
  111. data/bundler/lib/bundler/rubygems_ext.rb +24 -50
  112. data/bundler/lib/bundler/rubygems_gem_installer.rb +6 -56
  113. data/bundler/lib/bundler/rubygems_integration.rb +25 -94
  114. data/bundler/lib/bundler/runtime.rb +2 -2
  115. data/bundler/lib/bundler/self_manager.rb +23 -7
  116. data/bundler/lib/bundler/settings.rb +27 -7
  117. data/bundler/lib/bundler/setup.rb +4 -1
  118. data/bundler/lib/bundler/shared_helpers.rb +35 -13
  119. data/bundler/lib/bundler/source/git/git_proxy.rb +15 -15
  120. data/bundler/lib/bundler/source/git.rb +4 -3
  121. data/bundler/lib/bundler/source/metadata.rb +15 -15
  122. data/bundler/lib/bundler/source/path.rb +7 -6
  123. data/bundler/lib/bundler/source/rubygems.rb +21 -14
  124. data/bundler/lib/bundler/source.rb +2 -0
  125. data/bundler/lib/bundler/spec_set.rb +38 -10
  126. data/bundler/lib/bundler/stub_specification.rb +1 -0
  127. data/bundler/lib/bundler/templates/Executable.bundler +1 -1
  128. data/bundler/lib/bundler/templates/newgem/README.md.tt +3 -3
  129. data/bundler/lib/bundler/templates/newgem/Rakefile.tt +2 -6
  130. data/bundler/lib/bundler/templates/newgem/ext/newgem/Cargo.toml.tt +1 -1
  131. data/bundler/lib/bundler/templates/newgem/standard.yml.tt +1 -1
  132. data/bundler/lib/bundler/ui/shell.rb +1 -1
  133. data/bundler/lib/bundler/vendor/connection_pool/.document +1 -0
  134. data/bundler/lib/bundler/vendor/connection_pool/lib/connection_pool/version.rb +1 -1
  135. data/bundler/lib/bundler/vendor/connection_pool/lib/connection_pool.rb +53 -6
  136. data/bundler/lib/bundler/vendor/fileutils/.document +1 -0
  137. data/bundler/lib/bundler/vendor/fileutils/lib/fileutils.rb +8 -20
  138. data/bundler/lib/bundler/vendor/net-http-persistent/.document +1 -0
  139. data/bundler/lib/bundler/vendor/net-http-persistent/lib/net/http/persistent/connection.rb +3 -3
  140. data/bundler/lib/bundler/vendor/net-http-persistent/lib/net/http/persistent/pool.rb +2 -2
  141. data/bundler/lib/bundler/vendor/net-http-persistent/lib/net/http/persistent/timed_stack_multi.rb +1 -1
  142. data/bundler/lib/bundler/vendor/net-http-persistent/lib/net/http/persistent.rb +34 -34
  143. data/bundler/lib/bundler/vendor/pub_grub/.document +1 -0
  144. data/bundler/lib/bundler/vendor/thor/.document +1 -0
  145. data/bundler/lib/bundler/vendor/tsort/.document +1 -0
  146. data/bundler/lib/bundler/vendor/tsort/lib/tsort.rb +3 -0
  147. data/bundler/lib/bundler/vendor/uri/.document +1 -0
  148. data/bundler/lib/bundler/vendor/uri/lib/uri/common.rb +256 -132
  149. data/bundler/lib/bundler/vendor/uri/lib/uri/generic.rb +1 -0
  150. data/bundler/lib/bundler/vendor/uri/lib/uri/rfc3986_parser.rb +95 -31
  151. data/bundler/lib/bundler/vendor/uri/lib/uri/version.rb +1 -1
  152. data/bundler/lib/bundler/vendored_net_http.rb +8 -0
  153. data/bundler/lib/bundler/vendored_persistent.rb +0 -4
  154. data/bundler/lib/bundler/vendored_timeout.rb +8 -0
  155. data/bundler/lib/bundler/version.rb +1 -1
  156. data/bundler/lib/bundler/vlad.rb +1 -1
  157. data/bundler/lib/bundler/yaml_serializer.rb +3 -3
  158. data/bundler/lib/bundler.rb +41 -32
  159. data/lib/rubygems/available_set.rb +4 -4
  160. data/lib/rubygems/basic_specification.rb +35 -37
  161. data/lib/rubygems/bundler_version_finder.rb +4 -4
  162. data/lib/rubygems/ci_detector.rb +75 -0
  163. data/lib/rubygems/command.rb +13 -15
  164. data/lib/rubygems/command_manager.rb +5 -4
  165. data/lib/rubygems/commands/build_command.rb +2 -2
  166. data/lib/rubygems/commands/cert_command.rb +1 -2
  167. data/lib/rubygems/commands/check_command.rb +4 -4
  168. data/lib/rubygems/commands/cleanup_command.rb +12 -14
  169. data/lib/rubygems/commands/contents_command.rb +4 -4
  170. data/lib/rubygems/commands/dependency_command.rb +4 -5
  171. data/lib/rubygems/commands/environment_command.rb +1 -3
  172. data/lib/rubygems/commands/exec_command.rb +1 -1
  173. data/lib/rubygems/commands/fetch_command.rb +2 -2
  174. data/lib/rubygems/commands/generate_index_command.rb +39 -74
  175. data/lib/rubygems/commands/help_command.rb +3 -3
  176. data/lib/rubygems/commands/info_command.rb +2 -2
  177. data/lib/rubygems/commands/install_command.rb +8 -16
  178. data/lib/rubygems/commands/list_command.rb +2 -2
  179. data/lib/rubygems/commands/lock_command.rb +1 -1
  180. data/lib/rubygems/commands/open_command.rb +1 -1
  181. data/lib/rubygems/commands/owner_command.rb +1 -1
  182. data/lib/rubygems/commands/pristine_command.rb +13 -15
  183. data/lib/rubygems/commands/push_command.rb +2 -2
  184. data/lib/rubygems/commands/query_command.rb +4 -5
  185. data/lib/rubygems/commands/rdoc_command.rb +2 -2
  186. data/lib/rubygems/commands/search_command.rb +2 -2
  187. data/lib/rubygems/commands/setup_command.rb +31 -34
  188. data/lib/rubygems/commands/sources_command.rb +12 -12
  189. data/lib/rubygems/commands/specification_command.rb +10 -10
  190. data/lib/rubygems/commands/stale_command.rb +1 -1
  191. data/lib/rubygems/commands/uninstall_command.rb +9 -10
  192. data/lib/rubygems/commands/unpack_command.rb +4 -4
  193. data/lib/rubygems/commands/update_command.rb +10 -12
  194. data/lib/rubygems/commands/which_command.rb +1 -1
  195. data/lib/rubygems/commands/yank_command.rb +1 -1
  196. data/lib/rubygems/compatibility.rb +5 -6
  197. data/lib/rubygems/config_file.rb +4 -4
  198. data/lib/rubygems/core_ext/kernel_gem.rb +0 -2
  199. data/lib/rubygems/core_ext/kernel_require.rb +19 -48
  200. data/lib/rubygems/core_ext/kernel_warn.rb +1 -1
  201. data/lib/rubygems/core_ext/tcpsocket_init.rb +1 -1
  202. data/lib/rubygems/defaults.rb +15 -3
  203. data/lib/rubygems/dependency.rb +12 -14
  204. data/lib/rubygems/dependency_installer.rb +29 -30
  205. data/lib/rubygems/dependency_list.rb +1 -1
  206. data/lib/rubygems/deprecate.rb +16 -15
  207. data/lib/rubygems/doctor.rb +5 -5
  208. data/lib/rubygems/errors.rb +2 -6
  209. data/lib/rubygems/exceptions.rb +2 -1
  210. data/lib/rubygems/ext/builder.rb +15 -10
  211. data/lib/rubygems/ext/cargo_builder.rb +5 -5
  212. data/lib/rubygems/ext/ext_conf_builder.rb +1 -3
  213. data/lib/rubygems/gem_runner.rb +4 -4
  214. data/lib/rubygems/gemcutter_utilities/webauthn_listener/response.rb +3 -3
  215. data/lib/rubygems/gemcutter_utilities/webauthn_poller.rb +3 -3
  216. data/lib/rubygems/gemcutter_utilities.rb +18 -19
  217. data/lib/rubygems/install_update_options.rb +18 -19
  218. data/lib/rubygems/installer.rb +59 -33
  219. data/lib/rubygems/installer_uninstaller_utils.rb +0 -2
  220. data/lib/rubygems/local_remote_options.rb +7 -10
  221. data/lib/rubygems/name_tuple.rb +7 -9
  222. data/lib/rubygems/net/http.rb +3 -0
  223. data/lib/rubygems/net-http/.document +1 -0
  224. data/lib/rubygems/net-http/LICENSE.txt +22 -0
  225. data/lib/rubygems/net-http/lib/net/http/backward.rb +40 -0
  226. data/lib/rubygems/net-http/lib/net/http/exceptions.rb +34 -0
  227. data/lib/rubygems/net-http/lib/net/http/generic_request.rb +414 -0
  228. data/lib/rubygems/net-http/lib/net/http/header.rb +981 -0
  229. data/lib/rubygems/net-http/lib/net/http/proxy_delta.rb +17 -0
  230. data/lib/rubygems/net-http/lib/net/http/request.rb +88 -0
  231. data/lib/rubygems/net-http/lib/net/http/requests.rb +425 -0
  232. data/lib/rubygems/net-http/lib/net/http/response.rb +738 -0
  233. data/lib/rubygems/net-http/lib/net/http/responses.rb +1174 -0
  234. data/lib/rubygems/net-http/lib/net/http/status.rb +84 -0
  235. data/lib/rubygems/net-http/lib/net/http.rb +2496 -0
  236. data/lib/rubygems/net-http/lib/net/https.rb +23 -0
  237. data/lib/rubygems/net-protocol/.document +1 -0
  238. data/lib/rubygems/net-protocol/LICENSE.txt +22 -0
  239. data/lib/rubygems/net-protocol/lib/net/protocol.rb +544 -0
  240. data/lib/rubygems/optparse/lib/optparse.rb +39 -17
  241. data/lib/rubygems/package/old.rb +2 -2
  242. data/lib/rubygems/package/tar_header.rb +45 -39
  243. data/lib/rubygems/package/tar_reader/entry.rb +5 -4
  244. data/lib/rubygems/package/tar_reader.rb +5 -3
  245. data/lib/rubygems/package/tar_writer.rb +19 -17
  246. data/lib/rubygems/package.rb +27 -26
  247. data/lib/rubygems/package_task.rb +2 -2
  248. data/lib/rubygems/path_support.rb +9 -10
  249. data/lib/rubygems/platform.rb +60 -45
  250. data/lib/rubygems/query_utils.rb +7 -9
  251. data/lib/rubygems/remote_fetcher.rb +15 -15
  252. data/lib/rubygems/request/connection_pools.rb +3 -3
  253. data/lib/rubygems/request.rb +20 -17
  254. data/lib/rubygems/request_set/gem_dependency_api.rb +119 -122
  255. data/lib/rubygems/request_set/lockfile/parser.rb +9 -9
  256. data/lib/rubygems/request_set/lockfile/tokenizer.rb +20 -12
  257. data/lib/rubygems/request_set/lockfile.rb +6 -11
  258. data/lib/rubygems/request_set.rb +5 -5
  259. data/lib/rubygems/requirement.rb +7 -7
  260. data/lib/rubygems/resolv/.document +1 -0
  261. data/lib/rubygems/resolv/LICENSE.txt +22 -0
  262. data/lib/rubygems/resolv/lib/resolv.rb +3387 -0
  263. data/lib/rubygems/resolver/activation_request.rb +1 -3
  264. data/lib/rubygems/resolver/api_set/gem_parser.rb +7 -3
  265. data/lib/rubygems/resolver/best_set.rb +1 -1
  266. data/lib/rubygems/resolver/composed_set.rb +1 -1
  267. data/lib/rubygems/resolver/conflict.rb +4 -12
  268. data/lib/rubygems/resolver/index_set.rb +4 -4
  269. data/lib/rubygems/resolver/index_specification.rb +2 -2
  270. data/lib/rubygems/resolver/installer_set.rb +5 -6
  271. data/lib/rubygems/resolver/lock_set.rb +1 -1
  272. data/lib/rubygems/resolver/molinillo/.document +1 -0
  273. data/lib/rubygems/resolver.rb +3 -10
  274. data/lib/rubygems/s3_uri_signer.rb +6 -6
  275. data/lib/rubygems/safe_marshal/elements.rb +138 -0
  276. data/lib/rubygems/safe_marshal/reader.rb +306 -0
  277. data/lib/rubygems/safe_marshal/visitors/stream_printer.rb +31 -0
  278. data/lib/rubygems/safe_marshal/visitors/to_ruby.rb +385 -0
  279. data/lib/rubygems/safe_marshal/visitors/visitor.rb +74 -0
  280. data/lib/rubygems/safe_marshal.rb +74 -0
  281. data/lib/rubygems/safe_yaml.rb +5 -28
  282. data/lib/rubygems/security/policies.rb +36 -38
  283. data/lib/rubygems/security/policy.rb +7 -11
  284. data/lib/rubygems/security/signer.rb +1 -1
  285. data/lib/rubygems/security/trust_dir.rb +3 -3
  286. data/lib/rubygems/security.rb +8 -22
  287. data/lib/rubygems/source/git.rb +1 -3
  288. data/lib/rubygems/source/installed.rb +0 -2
  289. data/lib/rubygems/source/local.rb +5 -8
  290. data/lib/rubygems/source/lock.rb +1 -3
  291. data/lib/rubygems/source/specific_file.rb +0 -1
  292. data/lib/rubygems/source/vendor.rb +0 -2
  293. data/lib/rubygems/source.rb +12 -12
  294. data/lib/rubygems/source_list.rb +4 -4
  295. data/lib/rubygems/spec_fetcher.rb +29 -29
  296. data/lib/rubygems/specification.rb +125 -138
  297. data/lib/rubygems/specification_policy.rb +55 -25
  298. data/lib/rubygems/stub_specification.rb +4 -5
  299. data/lib/rubygems/text.rb +1 -2
  300. data/lib/rubygems/timeout/.document +1 -0
  301. data/lib/rubygems/timeout/LICENSE.txt +22 -0
  302. data/lib/rubygems/timeout/lib/timeout.rb +199 -0
  303. data/lib/rubygems/timeout.rb +3 -0
  304. data/lib/rubygems/tsort/lib/tsort.rb +3 -0
  305. data/lib/rubygems/uninstaller.rb +7 -9
  306. data/lib/rubygems/update_suggestion.rb +5 -18
  307. data/lib/rubygems/uri_formatter.rb +1 -1
  308. data/lib/rubygems/user_interaction.rb +15 -21
  309. data/lib/rubygems/util/licenses.rb +65 -35
  310. data/lib/rubygems/util/list.rb +3 -1
  311. data/lib/rubygems/util.rb +2 -4
  312. data/lib/rubygems/validator.rb +5 -3
  313. data/lib/rubygems/version.rb +34 -28
  314. data/lib/rubygems/version_option.rb +2 -5
  315. data/lib/rubygems/yaml_serializer.rb +3 -3
  316. data/lib/rubygems.rb +37 -37
  317. data/rubygems-update.gemspec +4 -4
  318. data/setup.rb +2 -2
  319. metadata +50 -225
  320. data/lib/rubygems/indexer.rb +0 -428
  321. data/lib/rubygems/mock_gem_ui.rb +0 -86
  322. data/test/rubygems/alternate_cert.pem +0 -19
  323. data/test/rubygems/alternate_cert_32.pem +0 -19
  324. data/test/rubygems/alternate_key.pem +0 -27
  325. data/test/rubygems/bad_rake.rb +0 -3
  326. data/test/rubygems/bundler_test_gem.rb +0 -424
  327. data/test/rubygems/ca_cert.pem +0 -77
  328. data/test/rubygems/child_cert.pem +0 -19
  329. data/test/rubygems/child_cert_32.pem +0 -19
  330. data/test/rubygems/child_key.pem +0 -27
  331. data/test/rubygems/client.pem +0 -107
  332. data/test/rubygems/data/excon-0.7.7.gemspec.rz +0 -0
  333. data/test/rubygems/data/gem-private_key.pem +0 -27
  334. data/test/rubygems/data/gem-public_cert.pem +0 -20
  335. data/test/rubygems/data/null-required-ruby-version.gemspec.rz +0 -0
  336. data/test/rubygems/data/null-required-rubygems-version.gemspec.rz +0 -0
  337. data/test/rubygems/data/pry-0.4.7.gemspec.rz +0 -0
  338. data/test/rubygems/encrypted_private_key.pem +0 -30
  339. data/test/rubygems/expired_cert.pem +0 -19
  340. data/test/rubygems/fake_certlib/openssl.rb +0 -9
  341. data/test/rubygems/foo/discover.rb +0 -1
  342. data/test/rubygems/future_cert.pem +0 -19
  343. data/test/rubygems/future_cert_32.pem +0 -19
  344. data/test/rubygems/good_rake.rb +0 -3
  345. data/test/rubygems/grandchild_cert.pem +0 -19
  346. data/test/rubygems/grandchild_cert_32.pem +0 -19
  347. data/test/rubygems/grandchild_key.pem +0 -27
  348. data/test/rubygems/helper.rb +0 -1649
  349. data/test/rubygems/installer_test_case.rb +0 -248
  350. data/test/rubygems/invalid_client.pem +0 -49
  351. data/test/rubygems/invalid_issuer_cert.pem +0 -20
  352. data/test/rubygems/invalid_issuer_cert_32.pem +0 -20
  353. data/test/rubygems/invalid_key.pem +0 -27
  354. data/test/rubygems/invalid_signer_cert.pem +0 -19
  355. data/test/rubygems/invalid_signer_cert_32.pem +0 -19
  356. data/test/rubygems/invalidchild_cert.pem +0 -19
  357. data/test/rubygems/invalidchild_cert_32.pem +0 -19
  358. data/test/rubygems/invalidchild_key.pem +0 -27
  359. data/test/rubygems/multifactor_auth_utilities.rb +0 -111
  360. data/test/rubygems/package/tar_test_case.rb +0 -175
  361. data/test/rubygems/packages/Bluebie-legs-0.6.2.gem +0 -0
  362. data/test/rubygems/packages/ascii_binder-0.1.10.1.gem +0 -0
  363. data/test/rubygems/packages/ill-formatted-platform-1.0.0.10.gem +0 -0
  364. data/test/rubygems/plugin/exception/rubygems_plugin.rb +0 -4
  365. data/test/rubygems/plugin/load/rubygems_plugin.rb +0 -5
  366. data/test/rubygems/plugin/standarderror/rubygems_plugin.rb +0 -4
  367. data/test/rubygems/private3072_key.pem +0 -40
  368. data/test/rubygems/private_ec_key.pem +0 -9
  369. data/test/rubygems/private_key.pem +0 -27
  370. data/test/rubygems/public3072_cert.pem +0 -25
  371. data/test/rubygems/public_cert.pem +0 -20
  372. data/test/rubygems/public_cert_32.pem +0 -19
  373. data/test/rubygems/public_key.pem +0 -9
  374. data/test/rubygems/rubygems/commands/crash_command.rb +0 -5
  375. data/test/rubygems/rubygems_plugin.rb +0 -24
  376. data/test/rubygems/sff/discover.rb +0 -1
  377. data/test/rubygems/simple_gem.rb +0 -68
  378. data/test/rubygems/specifications/bar-0.0.2.gemspec +0 -9
  379. data/test/rubygems/specifications/foo-0.0.1-x86-mswin32.gemspec +0 -0
  380. data/test/rubygems/specifications/rubyforge-0.0.1.gemspec +0 -14
  381. data/test/rubygems/ssl_cert.pem +0 -80
  382. data/test/rubygems/ssl_key.pem +0 -27
  383. data/test/rubygems/test_bundled_ca.rb +0 -61
  384. data/test/rubygems/test_config.rb +0 -28
  385. data/test/rubygems/test_deprecate.rb +0 -158
  386. data/test/rubygems/test_exit.rb +0 -17
  387. data/test/rubygems/test_gem.rb +0 -1799
  388. data/test/rubygems/test_gem_available_set.rb +0 -130
  389. data/test/rubygems/test_gem_bundler_version_finder.rb +0 -127
  390. data/test/rubygems/test_gem_command.rb +0 -403
  391. data/test/rubygems/test_gem_command_manager.rb +0 -400
  392. data/test/rubygems/test_gem_commands_build_command.rb +0 -739
  393. data/test/rubygems/test_gem_commands_cert_command.rb +0 -866
  394. data/test/rubygems/test_gem_commands_check_command.rb +0 -68
  395. data/test/rubygems/test_gem_commands_cleanup_command.rb +0 -292
  396. data/test/rubygems/test_gem_commands_contents_command.rb +0 -271
  397. data/test/rubygems/test_gem_commands_dependency_command.rb +0 -228
  398. data/test/rubygems/test_gem_commands_environment_command.rb +0 -169
  399. data/test/rubygems/test_gem_commands_exec_command.rb +0 -857
  400. data/test/rubygems/test_gem_commands_fetch_command.rb +0 -258
  401. data/test/rubygems/test_gem_commands_generate_index_command.rb +0 -81
  402. data/test/rubygems/test_gem_commands_help_command.rb +0 -94
  403. data/test/rubygems/test_gem_commands_info_command.rb +0 -70
  404. data/test/rubygems/test_gem_commands_install_command.rb +0 -1573
  405. data/test/rubygems/test_gem_commands_list_command.rb +0 -33
  406. data/test/rubygems/test_gem_commands_lock_command.rb +0 -67
  407. data/test/rubygems/test_gem_commands_mirror.rb +0 -20
  408. data/test/rubygems/test_gem_commands_open_command.rb +0 -101
  409. data/test/rubygems/test_gem_commands_outdated_command.rb +0 -50
  410. data/test/rubygems/test_gem_commands_owner_command.rb +0 -503
  411. data/test/rubygems/test_gem_commands_pristine_command.rb +0 -708
  412. data/test/rubygems/test_gem_commands_push_command.rb +0 -603
  413. data/test/rubygems/test_gem_commands_query_command.rb +0 -858
  414. data/test/rubygems/test_gem_commands_search_command.rb +0 -16
  415. data/test/rubygems/test_gem_commands_server_command.rb +0 -20
  416. data/test/rubygems/test_gem_commands_setup_command.rb +0 -474
  417. data/test/rubygems/test_gem_commands_signin_command.rb +0 -259
  418. data/test/rubygems/test_gem_commands_signout_command.rb +0 -30
  419. data/test/rubygems/test_gem_commands_sources_command.rb +0 -534
  420. data/test/rubygems/test_gem_commands_specification_command.rb +0 -277
  421. data/test/rubygems/test_gem_commands_stale_command.rb +0 -43
  422. data/test/rubygems/test_gem_commands_uninstall_command.rb +0 -542
  423. data/test/rubygems/test_gem_commands_unpack_command.rb +0 -224
  424. data/test/rubygems/test_gem_commands_update_command.rb +0 -836
  425. data/test/rubygems/test_gem_commands_which_command.rb +0 -85
  426. data/test/rubygems/test_gem_commands_yank_command.rb +0 -299
  427. data/test/rubygems/test_gem_config_file.rb +0 -551
  428. data/test/rubygems/test_gem_dependency.rb +0 -398
  429. data/test/rubygems/test_gem_dependency_installer.rb +0 -1190
  430. data/test/rubygems/test_gem_dependency_list.rb +0 -265
  431. data/test/rubygems/test_gem_dependency_resolution_error.rb +0 -27
  432. data/test/rubygems/test_gem_doctor.rb +0 -195
  433. data/test/rubygems/test_gem_ext_builder.rb +0 -337
  434. data/test/rubygems/test_gem_ext_cargo_builder/custom_name/.gitignore +0 -1
  435. data/test/rubygems/test_gem_ext_cargo_builder/custom_name/custom_name.gemspec +0 -10
  436. data/test/rubygems/test_gem_ext_cargo_builder/custom_name/ext/custom_name_lib/Cargo.lock +0 -249
  437. data/test/rubygems/test_gem_ext_cargo_builder/custom_name/ext/custom_name_lib/Cargo.toml +0 -10
  438. data/test/rubygems/test_gem_ext_cargo_builder/custom_name/ext/custom_name_lib/src/lib.rs +0 -27
  439. data/test/rubygems/test_gem_ext_cargo_builder/custom_name/lib/custom_name.rb +0 -3
  440. data/test/rubygems/test_gem_ext_cargo_builder/rust_ruby_example/.gitignore +0 -1
  441. data/test/rubygems/test_gem_ext_cargo_builder/rust_ruby_example/Cargo.lock +0 -249
  442. data/test/rubygems/test_gem_ext_cargo_builder/rust_ruby_example/Cargo.toml +0 -10
  443. data/test/rubygems/test_gem_ext_cargo_builder/rust_ruby_example/rust_ruby_example.gemspec +0 -10
  444. data/test/rubygems/test_gem_ext_cargo_builder/rust_ruby_example/src/lib.rs +0 -51
  445. data/test/rubygems/test_gem_ext_cargo_builder.rb +0 -167
  446. data/test/rubygems/test_gem_ext_cargo_builder_link_flag_converter.rb +0 -34
  447. data/test/rubygems/test_gem_ext_cargo_builder_unit.rb +0 -60
  448. data/test/rubygems/test_gem_ext_cmake_builder.rb +0 -84
  449. data/test/rubygems/test_gem_ext_configure_builder.rb +0 -80
  450. data/test/rubygems/test_gem_ext_ext_conf_builder.rb +0 -229
  451. data/test/rubygems/test_gem_ext_rake_builder.rb +0 -113
  452. data/test/rubygems/test_gem_gem_runner.rb +0 -119
  453. data/test/rubygems/test_gem_gemcutter_utilities.rb +0 -361
  454. data/test/rubygems/test_gem_impossible_dependencies_error.rb +0 -60
  455. data/test/rubygems/test_gem_indexer.rb +0 -381
  456. data/test/rubygems/test_gem_install_update_options.rb +0 -208
  457. data/test/rubygems/test_gem_installer.rb +0 -2512
  458. data/test/rubygems/test_gem_local_remote_options.rb +0 -133
  459. data/test/rubygems/test_gem_name_tuple.rb +0 -43
  460. data/test/rubygems/test_gem_package.rb +0 -1306
  461. data/test/rubygems/test_gem_package_old.rb +0 -91
  462. data/test/rubygems/test_gem_package_tar_header.rb +0 -226
  463. data/test/rubygems/test_gem_package_tar_reader.rb +0 -150
  464. data/test/rubygems/test_gem_package_tar_reader_entry.rb +0 -350
  465. data/test/rubygems/test_gem_package_tar_writer.rb +0 -331
  466. data/test/rubygems/test_gem_package_task.rb +0 -118
  467. data/test/rubygems/test_gem_path_support.rb +0 -139
  468. data/test/rubygems/test_gem_platform.rb +0 -497
  469. data/test/rubygems/test_gem_rdoc.rb +0 -137
  470. data/test/rubygems/test_gem_remote_fetcher.rb +0 -1227
  471. data/test/rubygems/test_gem_request.rb +0 -547
  472. data/test/rubygems/test_gem_request_connection_pools.rb +0 -152
  473. data/test/rubygems/test_gem_request_set.rb +0 -672
  474. data/test/rubygems/test_gem_request_set_gem_dependency_api.rb +0 -853
  475. data/test/rubygems/test_gem_request_set_lockfile.rb +0 -469
  476. data/test/rubygems/test_gem_request_set_lockfile_parser.rb +0 -544
  477. data/test/rubygems/test_gem_request_set_lockfile_tokenizer.rb +0 -307
  478. data/test/rubygems/test_gem_requirement.rb +0 -505
  479. data/test/rubygems/test_gem_resolver.rb +0 -859
  480. data/test/rubygems/test_gem_resolver_activation_request.rb +0 -43
  481. data/test/rubygems/test_gem_resolver_api_set.rb +0 -210
  482. data/test/rubygems/test_gem_resolver_api_specification.rb +0 -167
  483. data/test/rubygems/test_gem_resolver_best_set.rb +0 -159
  484. data/test/rubygems/test_gem_resolver_composed_set.rb +0 -44
  485. data/test/rubygems/test_gem_resolver_conflict.rb +0 -82
  486. data/test/rubygems/test_gem_resolver_dependency_request.rb +0 -83
  487. data/test/rubygems/test_gem_resolver_git_set.rb +0 -188
  488. data/test/rubygems/test_gem_resolver_git_specification.rb +0 -114
  489. data/test/rubygems/test_gem_resolver_index_set.rb +0 -88
  490. data/test/rubygems/test_gem_resolver_index_specification.rb +0 -93
  491. data/test/rubygems/test_gem_resolver_installed_specification.rb +0 -47
  492. data/test/rubygems/test_gem_resolver_installer_set.rb +0 -320
  493. data/test/rubygems/test_gem_resolver_local_specification.rb +0 -44
  494. data/test/rubygems/test_gem_resolver_lock_set.rb +0 -62
  495. data/test/rubygems/test_gem_resolver_lock_specification.rb +0 -98
  496. data/test/rubygems/test_gem_resolver_requirement_list.rb +0 -19
  497. data/test/rubygems/test_gem_resolver_specification.rb +0 -63
  498. data/test/rubygems/test_gem_resolver_vendor_set.rb +0 -82
  499. data/test/rubygems/test_gem_resolver_vendor_specification.rb +0 -82
  500. data/test/rubygems/test_gem_security.rb +0 -341
  501. data/test/rubygems/test_gem_security_policy.rb +0 -535
  502. data/test/rubygems/test_gem_security_signer.rb +0 -218
  503. data/test/rubygems/test_gem_security_trust_dir.rb +0 -99
  504. data/test/rubygems/test_gem_silent_ui.rb +0 -123
  505. data/test/rubygems/test_gem_source.rb +0 -254
  506. data/test/rubygems/test_gem_source_fetch_problem.rb +0 -37
  507. data/test/rubygems/test_gem_source_git.rb +0 -310
  508. data/test/rubygems/test_gem_source_installed.rb +0 -35
  509. data/test/rubygems/test_gem_source_list.rb +0 -119
  510. data/test/rubygems/test_gem_source_local.rb +0 -107
  511. data/test/rubygems/test_gem_source_lock.rb +0 -113
  512. data/test/rubygems/test_gem_source_specific_file.rb +0 -76
  513. data/test/rubygems/test_gem_source_subpath_problem.rb +0 -50
  514. data/test/rubygems/test_gem_source_vendor.rb +0 -30
  515. data/test/rubygems/test_gem_spec_fetcher.rb +0 -338
  516. data/test/rubygems/test_gem_specification.rb +0 -3856
  517. data/test/rubygems/test_gem_stream_ui.rb +0 -255
  518. data/test/rubygems/test_gem_stub_specification.rb +0 -278
  519. data/test/rubygems/test_gem_text.rb +0 -103
  520. data/test/rubygems/test_gem_uninstaller.rb +0 -675
  521. data/test/rubygems/test_gem_unsatisfiable_dependency_error.rb +0 -31
  522. data/test/rubygems/test_gem_update_suggestion.rb +0 -209
  523. data/test/rubygems/test_gem_uri.rb +0 -41
  524. data/test/rubygems/test_gem_uri_formatter.rb +0 -27
  525. data/test/rubygems/test_gem_util.rb +0 -91
  526. data/test/rubygems/test_gem_validator.rb +0 -42
  527. data/test/rubygems/test_gem_version.rb +0 -305
  528. data/test/rubygems/test_gem_version_option.rb +0 -165
  529. data/test/rubygems/test_kernel.rb +0 -124
  530. data/test/rubygems/test_project_sanity.rb +0 -49
  531. data/test/rubygems/test_remote_fetch_error.rb +0 -20
  532. data/test/rubygems/test_require.rb +0 -732
  533. data/test/rubygems/test_rubygems.rb +0 -76
  534. data/test/rubygems/test_webauthn_listener.rb +0 -143
  535. data/test/rubygems/test_webauthn_listener_response.rb +0 -93
  536. data/test/rubygems/test_webauthn_poller.rb +0 -124
  537. data/test/rubygems/utilities.rb +0 -436
  538. data/test/rubygems/wrong_key_cert.pem +0 -19
  539. data/test/rubygems/wrong_key_cert_32.pem +0 -19
  540. data/test/test_changelog_generator.rb +0 -17
@@ -1,708 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require_relative "helper"
4
- require "rubygems/commands/pristine_command"
5
-
6
- class TestGemCommandsPristineCommand < Gem::TestCase
7
- def setup
8
- super
9
- common_installer_setup
10
-
11
- @cmd = Gem::Commands::PristineCommand.new
12
- end
13
-
14
- def test_execute
15
- a = util_spec "a" do |s|
16
- s.executables = %w[foo]
17
- s.files = %w[bin/foo lib/a.rb]
18
- end
19
-
20
- write_file File.join(@tempdir, "lib", "a.rb") do |fp|
21
- fp.puts "puts __FILE__"
22
- end
23
- write_file File.join(@tempdir, "bin", "foo") do |fp|
24
- fp.puts "#!/usr/bin/ruby"
25
- end
26
-
27
- install_gem a
28
-
29
- foo_path = File.join @gemhome, "gems", a.full_name, "bin", "foo"
30
- a_rb_path = File.join @gemhome, "gems", a.full_name, "lib", "a.rb"
31
-
32
- write_file foo_path do |io|
33
- io.puts "I changed it!"
34
- end
35
-
36
- write_file a_rb_path do |io|
37
- io.puts "I changed it!"
38
- end
39
-
40
- @cmd.options[:args] = %w[a]
41
-
42
- use_ui @ui do
43
- @cmd.execute
44
- end
45
-
46
- assert_equal "#!/usr/bin/ruby\n", File.read(foo_path), foo_path
47
- assert_equal "puts __FILE__\n", File.read(a_rb_path), a_rb_path
48
-
49
- out = @ui.output.split "\n"
50
-
51
- assert_equal "Restoring gems to pristine condition...", out.shift
52
- assert_equal "Restored #{a.full_name}", out.shift
53
- assert_empty out, out.inspect
54
- end
55
-
56
- def test_execute_user_install
57
- FileUtils.chmod 0o555, @gemhome
58
-
59
- a = util_spec "a" do |s|
60
- s.executables = %w[foo]
61
- s.files = %w[bin/foo lib/a.rb]
62
- end
63
-
64
- write_file File.join(@tempdir, "lib", "a.rb") do |fp|
65
- fp.puts "puts __FILE__"
66
- end
67
-
68
- write_file File.join(@tempdir, "bin", "foo") do |fp|
69
- fp.puts "#!/usr/bin/ruby"
70
- end
71
-
72
- install_gem_user(a)
73
-
74
- Gem::Specification.dirs = [Gem.dir, Gem.user_dir]
75
-
76
- foo_path = File.join(Gem.user_dir, "gems", a.full_name, "bin", "foo")
77
- a_rb_path = File.join(Gem.user_dir, "gems", a.full_name, "lib", "a.rb")
78
-
79
- write_file foo_path do |io|
80
- io.puts("I changed it!")
81
- end
82
-
83
- write_file a_rb_path do |io|
84
- io.puts("I changed it!")
85
- end
86
-
87
- @cmd.options[:args] = %w[a]
88
-
89
- use_ui @ui do
90
- @cmd.execute
91
- end
92
-
93
- assert_equal "#!/usr/bin/ruby\n", File.read(foo_path), foo_path
94
- assert_equal "puts __FILE__\n", File.read(a_rb_path), a_rb_path
95
-
96
- out = @ui.output.split("\n")
97
-
98
- assert_equal "Restoring gems to pristine condition...", out.shift
99
- assert_equal "Restored #{a.full_name}", out.shift
100
- assert_empty out, out.inspect
101
- ensure
102
- FileUtils.chmod(0o755, @gemhome)
103
- end
104
-
105
- def test_execute_all
106
- a = util_spec "a" do |s|
107
- s.executables = %w[foo]
108
- end
109
-
110
- write_file File.join(@tempdir, "bin", "foo") do |fp|
111
- fp.puts "#!/usr/bin/ruby"
112
- end
113
-
114
- install_gem a
115
-
116
- gem_bin = File.join @gemhome, "gems", a.full_name, "bin", "foo"
117
- gem_stub = File.join @gemhome, "bin", "foo"
118
-
119
- FileUtils.rm gem_bin
120
- FileUtils.rm gem_stub
121
-
122
- @cmd.handle_options %w[--all]
123
-
124
- use_ui @ui do
125
- @cmd.execute
126
- end
127
-
128
- assert File.exist?(gem_bin)
129
- assert File.exist?(gem_stub)
130
-
131
- out = @ui.output.split "\n"
132
-
133
- assert_equal "Restoring gems to pristine condition...", out.shift
134
- assert_equal "Restored #{a.full_name}", out.shift
135
- assert_empty out, out.inspect
136
- end
137
-
138
- def test_execute_env_shebang
139
- a = util_spec "a" do |s|
140
- s.executables = %w[foo]
141
- s.files = %w[bin/foo]
142
- end
143
- write_file File.join(@tempdir, "bin", "foo") do |fp|
144
- fp.puts "#!/usr/bin/ruby"
145
- end
146
-
147
- install_gem a
148
-
149
- gem_exec = File.join @gemhome, "bin", "foo"
150
-
151
- FileUtils.rm gem_exec
152
-
153
- @cmd.handle_options %w[--all --env-shebang]
154
-
155
- use_ui @ui do
156
- @cmd.execute
157
- end
158
-
159
- assert_path_exist gem_exec
160
-
161
- ruby_exec = sprintf Gem.default_exec_format, "ruby"
162
-
163
- bin_env = win_platform? ? "" : %w[/usr/bin/env /bin/env].find {|f| File.executable?(f) } + " "
164
-
165
- assert_match %r{\A#!\s*#{bin_env}#{ruby_exec}}, File.read(gem_exec)
166
- end
167
-
168
- def test_execute_extensions_explicit
169
- a = util_spec "a" do |s|
170
- s.extensions << "ext/a/extconf.rb"
171
- end
172
-
173
- ext_path = File.join @tempdir, "ext", "a", "extconf.rb"
174
- write_file ext_path do |io|
175
- io.write <<-'RUBY'
176
- File.open "Makefile", "w" do |f|
177
- f.puts "clean:\n\techo cleaned\n"
178
- f.puts "all:\n\techo built\n"
179
- f.puts "install:\n\techo installed\n"
180
- end
181
- RUBY
182
- end
183
-
184
- b = util_spec "b"
185
-
186
- install_gem a
187
- install_gem b
188
-
189
- @cmd.options[:extensions] = true
190
- @cmd.options[:extensions_set] = true
191
- @cmd.options[:args] = []
192
-
193
- use_ui @ui do
194
- @cmd.execute
195
- end
196
-
197
- out = @ui.output.split "\n"
198
-
199
- assert_equal "Restoring gems to pristine condition...", out.shift
200
- assert_equal "Building native extensions. This could take a while...",
201
- out.shift
202
- assert_equal "Restored #{a.full_name}", out.shift
203
- assert_empty out, out.inspect
204
- end
205
-
206
- def test_execute_extensions_only_missing_extensions
207
- a = util_spec "a" do |s|
208
- s.extensions << "ext/a/extconf.rb"
209
- end
210
-
211
- ext_path = File.join @tempdir, "ext", "a", "extconf.rb"
212
- write_file ext_path do |io|
213
- io.write <<-'RUBY'
214
- File.open "Makefile", "w" do |f|
215
- f.puts "clean:\n\techo cleaned\n"
216
- f.puts "all:\n\techo built\n"
217
- f.puts "install:\n\techo installed\n"
218
- end
219
- RUBY
220
- end
221
-
222
- b = util_spec "b" do |s|
223
- s.extensions << "ext/b/extconf.rb"
224
- end
225
-
226
- ext_path = File.join @tempdir, "ext", "b", "extconf.rb"
227
- write_file ext_path do |io|
228
- io.write <<-'RUBY'
229
- File.open "Makefile", "w" do |f|
230
- f.puts "clean:\n\techo cleaned\n"
231
- f.puts "all:\n\techo built\n"
232
- f.puts "install:\n\techo installed\n"
233
- end
234
- RUBY
235
- end
236
-
237
- install_gem a
238
- install_gem b
239
-
240
- # Remove the extension files for b
241
- FileUtils.rm_rf b.gem_build_complete_path
242
-
243
- @cmd.options[:only_missing_extensions] = true
244
- @cmd.options[:args] = []
245
-
246
- use_ui @ui do
247
- @cmd.execute
248
- end
249
-
250
- refute_includes @ui.output, "Restored #{a.full_name}"
251
- assert_includes @ui.output, "Restored #{b.full_name}"
252
- end
253
-
254
- def test_execute_no_extension
255
- a = util_spec "a" do |s|
256
- s.extensions << "ext/a/extconf.rb"
257
- end
258
-
259
- ext_path = File.join @tempdir, "ext", "a", "extconf.rb"
260
- write_file ext_path do |io|
261
- io.write "# extconf.rb\nrequire 'mkmf'; create_makefile 'a'"
262
- end
263
-
264
- install_gem a
265
-
266
- @cmd.options[:args] = %w[a]
267
- @cmd.options[:extensions] = false
268
-
269
- use_ui @ui do
270
- @cmd.execute
271
- end
272
-
273
- out = @ui.output.split "\n"
274
-
275
- assert_equal "Restoring gems to pristine condition...", out.shift
276
- assert_equal "Skipped #{a.full_name}, it needs to compile an extension",
277
- out.shift
278
- assert_empty out, out.inspect
279
- end
280
-
281
- def test_execute_with_extension_with_build_args
282
- a = util_spec "a" do |s|
283
- s.extensions << "ext/a/extconf.rb"
284
- end
285
-
286
- ext_path = File.join @tempdir, "ext", "a", "extconf.rb"
287
- write_file ext_path do |io|
288
- io.write <<-'RUBY'
289
- File.open "Makefile", "w" do |f|
290
- f.puts "clean:\n\techo cleaned\n"
291
- f.puts "all:\n\techo built\n"
292
- f.puts "install:\n\techo installed\n"
293
- end
294
- RUBY
295
- end
296
-
297
- build_args = %w[--with-awesome=true --sweet]
298
-
299
- install_gem a, :build_args => build_args
300
-
301
- @cmd.options[:args] = %w[a]
302
-
303
- use_ui @ui do
304
- @cmd.execute
305
- end
306
-
307
- out = @ui.output.split "\n"
308
-
309
- assert_equal "Restoring gems to pristine condition...", out.shift
310
- assert_equal "Building native extensions with: '--with-awesome=true --sweet'", out.shift
311
- assert_equal "This could take a while...", out.shift
312
- assert_equal "Restored #{a.full_name}", out.shift
313
- assert_empty out, out.inspect
314
- end
315
-
316
- def test_execute_many
317
- a = util_spec "a"
318
- b = util_spec "b"
319
-
320
- install_gem a
321
- install_gem b
322
-
323
- @cmd.options[:args] = %w[a b]
324
-
325
- use_ui @ui do
326
- @cmd.execute
327
- end
328
-
329
- out = @ui.output.split "\n"
330
-
331
- assert_equal "Restoring gems to pristine condition...", out.shift
332
- assert_equal "Restored #{a.full_name}", out.shift
333
- assert_equal "Restored #{b.full_name}", out.shift
334
- assert_empty out, out.inspect
335
- end
336
-
337
- def test_skip
338
- a = util_spec "a"
339
- b = util_spec "b"
340
-
341
- install_gem a
342
- install_gem b
343
-
344
- @cmd.options[:args] = %w[a b]
345
- @cmd.options[:skip] = "a"
346
-
347
- use_ui @ui do
348
- @cmd.execute
349
- end
350
-
351
- out = @ui.output.split "\n"
352
-
353
- assert_equal "Restoring gems to pristine condition...", out.shift
354
- assert_equal "Skipped #{a.full_name}, it was given through options", out.shift
355
- assert_equal "Restored #{b.full_name}", out.shift
356
- assert_empty out, out.inspect
357
- end
358
-
359
- def test_skip_many_gems
360
- a = util_spec "a"
361
- b = util_spec "b"
362
- c = util_spec "c"
363
-
364
- install_gem a
365
- install_gem b
366
- install_gem c
367
-
368
- @cmd.options[:args] = %w[a b c]
369
- @cmd.options[:skip] = ["a", "c"]
370
-
371
- use_ui @ui do
372
- @cmd.execute
373
- end
374
-
375
- out = @ui.output.split "\n"
376
-
377
- assert_equal "Restoring gems to pristine condition...", out.shift
378
- assert_equal "Skipped #{a.full_name}, it was given through options", out.shift
379
- assert_equal "Restored #{b.full_name}", out.shift
380
- assert_equal "Skipped #{c.full_name}, it was given through options", out.shift
381
- assert_empty out, out.inspect
382
- end
383
-
384
- def test_execute_many_multi_repo
385
- a = util_spec "a"
386
- install_gem a
387
-
388
- Gem.clear_paths
389
- gemhome2 = File.join @tempdir, "gemhome2"
390
- Gem.use_paths gemhome2, [gemhome2, @gemhome]
391
-
392
- b = util_spec "b"
393
- install_gem b
394
-
395
- @cmd.options[:args] = %w[a b]
396
-
397
- use_ui @ui do
398
- @cmd.execute
399
- end
400
-
401
- out = @ui.output.split "\n"
402
-
403
- assert_equal "Restoring gems to pristine condition...", out.shift
404
- assert_equal "Restored #{a.full_name}", out.shift
405
- assert_equal "Restored #{b.full_name}", out.shift
406
- assert_empty out, out.inspect
407
-
408
- assert_path_exist File.join(@gemhome, "gems", "a-2")
409
- assert_path_not_exist File.join(gemhome2, "gems", "a-2")
410
- assert_path_exist File.join(gemhome2, "gems", "b-2")
411
- assert_path_not_exist File.join(@gemhome, "gems", "b-2")
412
- end
413
-
414
- def test_execute_missing_cache_gem
415
- specs = spec_fetcher do |fetcher|
416
- fetcher.gem "a", 1
417
- fetcher.gem "a", 2
418
- fetcher.gem "a", 3
419
- fetcher.gem "a", "3.a"
420
- end
421
-
422
- FileUtils.rm specs["a-2"].cache_file
423
-
424
- @cmd.options[:args] = %w[a]
425
-
426
- use_ui @ui do
427
- @cmd.execute
428
- end
429
-
430
- out = @ui.output.split "\n"
431
-
432
- [
433
- "Restoring gems to pristine condition...",
434
- "Restored a-1",
435
- "Cached gem for a-2 not found, attempting to fetch...",
436
- "Restored a-2",
437
- "Restored a-3.a",
438
- "Restored a-3",
439
- ].each do |line|
440
- assert_equal line, out.shift
441
- end
442
-
443
- assert_empty out, out.inspect
444
- end
445
-
446
- def test_execute_missing_cache_gem_when_multi_repo
447
- specs = spec_fetcher do |fetcher|
448
- fetcher.gem "a", 1
449
- fetcher.gem "b", 1
450
- end
451
-
452
- FileUtils.rm_rf File.join(@gemhome, "gems", "a-1")
453
- FileUtils.rm_rf File.join(@gemhome, "gems", "b-1")
454
-
455
- install_gem specs["a-1"]
456
- FileUtils.rm File.join(@gemhome, "cache", "a-1.gem")
457
-
458
- Gem.clear_paths
459
- gemhome2 = File.join(@tempdir, "gemhome2")
460
- Gem.use_paths gemhome2, [gemhome2, @gemhome]
461
-
462
- install_gem specs["b-1"]
463
- FileUtils.rm File.join(gemhome2, "cache", "b-1.gem")
464
- Gem::Specification.reset
465
-
466
- @cmd.options[:args] = %w[a b]
467
-
468
- use_ui @ui do
469
- @cmd.execute
470
- end
471
-
472
- out = @ui.output.split "\n"
473
-
474
- [
475
- "Restoring gems to pristine condition...",
476
- "Cached gem for a-1 not found, attempting to fetch...",
477
- "Restored a-1",
478
- "Cached gem for b-1 not found, attempting to fetch...",
479
- "Restored b-1",
480
- ].each do |line|
481
- assert_equal line, out.shift
482
- end
483
-
484
- assert_empty out, out.inspect
485
- assert_empty @ui.error
486
-
487
- assert_path_exist File.join(@gemhome, "cache", "a-1.gem")
488
- assert_path_not_exist File.join(gemhome2, "cache", "a-2.gem")
489
- assert_path_exist File.join(@gemhome, "gems", "a-1")
490
- assert_path_not_exist File.join(gemhome2, "gems", "a-1")
491
-
492
- assert_path_exist File.join(gemhome2, "cache", "b-1.gem")
493
- assert_path_not_exist File.join(@gemhome, "cache", "b-2.gem")
494
- assert_path_exist File.join(gemhome2, "gems", "b-1")
495
- assert_path_not_exist File.join(@gemhome, "gems", "b-1")
496
- end
497
-
498
- def test_execute_no_gem
499
- @cmd.options[:args] = %w[]
500
-
501
- e = assert_raise Gem::CommandLineError do
502
- use_ui @ui do
503
- @cmd.execute
504
- end
505
- end
506
-
507
- assert_match %r{at least one gem name}, e.message
508
- end
509
-
510
- def test_execute_only_executables
511
- a = util_spec "a" do |s|
512
- s.executables = %w[foo]
513
- s.files = %w[bin/foo lib/a.rb]
514
- end
515
- write_file File.join(@tempdir, "lib", "a.rb") do |fp|
516
- fp.puts "puts __FILE__"
517
- end
518
- write_file File.join(@tempdir, "bin", "foo") do |fp|
519
- fp.puts "#!/usr/bin/ruby"
520
- end
521
-
522
- install_gem a
523
-
524
- gem_lib = File.join @gemhome, "gems", a.full_name, "lib", "a.rb"
525
- gem_exec = File.join @gemhome, "bin", "foo"
526
-
527
- FileUtils.rm gem_exec
528
- FileUtils.rm gem_lib
529
-
530
- @cmd.handle_options %w[--all --only-executables]
531
-
532
- use_ui @ui do
533
- @cmd.execute
534
- end
535
-
536
- assert File.exist? gem_exec
537
- refute File.exist? gem_lib
538
- end
539
-
540
- def test_execute_only_plugins
541
- a = util_spec "a" do |s|
542
- s.executables = %w[foo]
543
- s.files = %w[bin/foo lib/a.rb lib/rubygems_plugin.rb]
544
- end
545
- write_file File.join(@tempdir, "lib", "a.rb") do |fp|
546
- fp.puts "puts __FILE__"
547
- end
548
- write_file File.join(@tempdir, "lib", "rubygems_plugin.rb") do |fp|
549
- fp.puts "# do nothing"
550
- end
551
- write_file File.join(@tempdir, "bin", "foo") do |fp|
552
- fp.puts "#!/usr/bin/ruby"
553
- end
554
-
555
- install_gem a
556
-
557
- gem_lib = File.join @gemhome, "gems", a.full_name, "lib", "a.rb"
558
- gem_plugin = File.join @gemhome, "plugins", "a_plugin.rb"
559
- gem_exec = File.join @gemhome, "bin", "foo"
560
-
561
- FileUtils.rm gem_exec
562
- FileUtils.rm gem_plugin
563
- FileUtils.rm gem_lib
564
-
565
- @cmd.handle_options %w[--all --only-plugins]
566
-
567
- use_ui @ui do
568
- @cmd.execute
569
- end
570
-
571
- refute File.exist? gem_exec
572
- assert File.exist? gem_plugin
573
- refute File.exist? gem_lib
574
- end
575
-
576
- def test_execute_bindir
577
- a = util_spec "a" do |s|
578
- s.name = "test_gem"
579
- s.executables = %w[foo]
580
- s.files = %w[bin/foo]
581
- end
582
-
583
- write_file File.join(@tempdir, "bin", "foo") do |fp|
584
- fp.puts "#!/usr/bin/ruby"
585
- end
586
-
587
- write_file File.join(@tempdir, "test_bin", "foo") do |fp|
588
- fp.puts "#!/usr/bin/ruby"
589
- end
590
-
591
- install_gem a
592
-
593
- gem_exec = File.join @gemhome, "bin", "foo"
594
- gem_bindir = File.join @tempdir, "test_bin", "foo"
595
-
596
- FileUtils.rm gem_exec
597
- FileUtils.rm gem_bindir
598
-
599
- @cmd.handle_options ["--all", "--only-executables", "--bindir", "#{gem_bindir}"]
600
-
601
- use_ui @ui do
602
- @cmd.execute
603
- end
604
-
605
- refute File.exist? gem_exec
606
- assert File.exist? gem_bindir
607
- end
608
-
609
- def test_execute_unknown_gem_at_remote_source
610
- install_specs util_spec "a"
611
-
612
- @cmd.options[:args] = %w[a]
613
-
614
- use_ui @ui do
615
- @cmd.execute
616
- end
617
-
618
- assert_equal([
619
- "Restoring gems to pristine condition...",
620
- "Cached gem for a-2 not found, attempting to fetch...",
621
- "Skipped a-2, it was not found from cache and remote sources",
622
- ], @ui.output.split("\n"))
623
-
624
- assert_empty @ui.error
625
- end
626
-
627
- def test_execute_default_gem
628
- default_gem_spec = new_default_spec("default", "2.0.0.0",
629
- nil, "default/gem.rb")
630
- install_default_gems(default_gem_spec)
631
-
632
- @cmd.options[:args] = %w[default]
633
-
634
- use_ui @ui do
635
- @cmd.execute
636
- end
637
-
638
- assert_equal(
639
- [
640
- "Restoring gems to pristine condition...",
641
- "Skipped default-2.0.0.0, it is a default gem",
642
- ],
643
- @ui.output.split("\n")
644
- )
645
- assert_empty(@ui.error)
646
- end
647
-
648
- def test_execute_multi_platform
649
- a = util_spec "a" do |s|
650
- s.extensions << "ext/a/extconf.rb"
651
- end
652
-
653
- b = util_spec "b" do |s|
654
- s.extensions << "ext/a/extconf.rb"
655
- s.platform = Gem::Platform.new("java")
656
- end
657
-
658
- ext_path = File.join @tempdir, "ext", "a", "extconf.rb"
659
- write_file ext_path do |io|
660
- io.write <<-'RUBY'
661
- File.open "Makefile", "w" do |f|
662
- f.puts "clean:\n\techo cleaned\n"
663
- f.puts "all:\n\techo built\n"
664
- f.puts "install:\n\techo installed\n"
665
- end
666
- RUBY
667
- end
668
-
669
- install_gem a
670
- install_gem b
671
-
672
- @cmd.options[:extensions] = true
673
- @cmd.options[:extensions_set] = true
674
- @cmd.options[:args] = []
675
-
676
- util_set_arch "x86_64-darwin" do
677
- use_ui @ui do
678
- @cmd.execute
679
- end
680
- end
681
-
682
- out = @ui.output.split "\n"
683
-
684
- assert_equal "Restoring gems to pristine condition...", out.shift
685
- assert_equal "Building native extensions. This could take a while...",
686
- out.shift
687
- assert_equal "Restored #{a.full_name}", out.shift
688
- assert_empty out, out.inspect
689
- end
690
-
691
- def test_handle_options
692
- @cmd.handle_options %w[]
693
-
694
- refute @cmd.options[:all]
695
-
696
- assert @cmd.options[:extensions]
697
- refute @cmd.options[:extensions_set]
698
-
699
- assert_equal Gem::Requirement.default, @cmd.options[:version]
700
- end
701
-
702
- def test_handle_options_extensions
703
- @cmd.handle_options %w[--extensions]
704
-
705
- assert @cmd.options[:extensions]
706
- assert @cmd.options[:extensions_set]
707
- end
708
- end