rubygems-update 3.3.18 → 3.4.19

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 (615) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +1429 -1064
  3. data/CONTRIBUTING.md +31 -8
  4. data/Manifest.txt +61 -36
  5. data/POLICIES.md +55 -20
  6. data/README.md +19 -6
  7. data/bundler/CHANGELOG.md +457 -1
  8. data/bundler/README.md +3 -6
  9. data/bundler/UPGRADING.md +11 -4
  10. data/bundler/bundler.gemspec +8 -10
  11. data/bundler/exe/bundle +5 -16
  12. data/bundler/lib/bundler/build_metadata.rb +2 -2
  13. data/bundler/lib/bundler/cli/add.rb +1 -1
  14. data/bundler/lib/bundler/cli/binstubs.rb +6 -2
  15. data/bundler/lib/bundler/cli/check.rb +1 -1
  16. data/bundler/lib/bundler/cli/common.rb +2 -0
  17. data/bundler/lib/bundler/cli/console.rb +2 -2
  18. data/bundler/lib/bundler/cli/doctor.rb +4 -6
  19. data/bundler/lib/bundler/cli/gem.rb +62 -40
  20. data/bundler/lib/bundler/cli/info.rb +1 -1
  21. data/bundler/lib/bundler/cli/init.rb +6 -2
  22. data/bundler/lib/bundler/cli/install.rb +8 -6
  23. data/bundler/lib/bundler/cli/lock.rb +8 -5
  24. data/bundler/lib/bundler/cli/open.rb +6 -4
  25. data/bundler/lib/bundler/cli/outdated.rb +14 -7
  26. data/bundler/lib/bundler/cli/platform.rb +7 -5
  27. data/bundler/lib/bundler/cli/viz.rb +1 -1
  28. data/bundler/lib/bundler/cli.rb +53 -7
  29. data/bundler/lib/bundler/compact_index_client/cache.rb +1 -1
  30. data/bundler/lib/bundler/compact_index_client/updater.rb +40 -39
  31. data/bundler/lib/bundler/constants.rb +1 -1
  32. data/bundler/lib/bundler/current_ruby.rb +16 -5
  33. data/bundler/lib/bundler/definition.rb +262 -133
  34. data/bundler/lib/bundler/dependency.rb +20 -86
  35. data/bundler/lib/bundler/digest.rb +1 -1
  36. data/bundler/lib/bundler/dsl.rb +6 -7
  37. data/bundler/lib/bundler/endpoint_specification.rb +2 -13
  38. data/bundler/lib/bundler/env.rb +2 -2
  39. data/bundler/lib/bundler/environment_preserver.rb +3 -2
  40. data/bundler/lib/bundler/errors.rb +1 -11
  41. data/bundler/lib/bundler/feature_flag.rb +0 -2
  42. data/bundler/lib/bundler/fetcher/compact_index.rb +11 -13
  43. data/bundler/lib/bundler/fetcher/dependency.rb +2 -6
  44. data/bundler/lib/bundler/fetcher/downloader.rb +4 -5
  45. data/bundler/lib/bundler/fetcher/index.rb +1 -2
  46. data/bundler/lib/bundler/fetcher.rb +21 -15
  47. data/bundler/lib/bundler/force_platform.rb +18 -0
  48. data/bundler/lib/bundler/friendly_errors.rb +1 -4
  49. data/bundler/lib/bundler/gem_helper.rb +3 -4
  50. data/bundler/lib/bundler/gem_helpers.rb +7 -2
  51. data/bundler/lib/bundler/gem_version_promoter.rb +53 -98
  52. data/bundler/lib/bundler/graph.rb +3 -3
  53. data/bundler/lib/bundler/index.rb +13 -47
  54. data/bundler/lib/bundler/injector.rb +5 -4
  55. data/bundler/lib/bundler/inline.rb +9 -11
  56. data/bundler/lib/bundler/installer/parallel_installer.rb +4 -34
  57. data/bundler/lib/bundler/installer/standalone.rb +13 -9
  58. data/bundler/lib/bundler/installer.rb +17 -29
  59. data/bundler/lib/bundler/lazy_specification.rb +54 -53
  60. data/bundler/lib/bundler/lockfile_generator.rb +3 -3
  61. data/bundler/lib/bundler/lockfile_parser.rb +17 -16
  62. data/bundler/lib/bundler/man/bundle-add.1 +6 -2
  63. data/bundler/lib/bundler/man/bundle-add.1.ronn +4 -1
  64. data/bundler/lib/bundler/man/bundle-binstubs.1 +1 -1
  65. data/bundler/lib/bundler/man/bundle-cache.1 +9 -3
  66. data/bundler/lib/bundler/man/bundle-cache.1.ronn +9 -2
  67. data/bundler/lib/bundler/man/bundle-check.1 +1 -1
  68. data/bundler/lib/bundler/man/bundle-clean.1 +2 -2
  69. data/bundler/lib/bundler/man/bundle-clean.1.ronn +1 -1
  70. data/bundler/lib/bundler/man/bundle-config.1 +26 -10
  71. data/bundler/lib/bundler/man/bundle-config.1.ronn +17 -10
  72. data/bundler/lib/bundler/man/bundle-console.1 +53 -0
  73. data/bundler/lib/bundler/man/bundle-console.1.ronn +44 -0
  74. data/bundler/lib/bundler/man/bundle-doctor.1 +1 -1
  75. data/bundler/lib/bundler/man/bundle-exec.1 +6 -6
  76. data/bundler/lib/bundler/man/bundle-exec.1.ronn +6 -6
  77. data/bundler/lib/bundler/man/bundle-gem.1 +27 -37
  78. data/bundler/lib/bundler/man/bundle-gem.1.ronn +5 -5
  79. data/bundler/lib/bundler/man/bundle-help.1 +13 -0
  80. data/bundler/lib/bundler/man/bundle-help.1.ronn +12 -0
  81. data/bundler/lib/bundler/man/bundle-info.1 +3 -3
  82. data/bundler/lib/bundler/man/bundle-info.1.ronn +3 -3
  83. data/bundler/lib/bundler/man/bundle-init.1 +5 -1
  84. data/bundler/lib/bundler/man/bundle-init.1.ronn +2 -0
  85. data/bundler/lib/bundler/man/bundle-inject.1 +5 -2
  86. data/bundler/lib/bundler/man/bundle-inject.1.ronn +3 -1
  87. data/bundler/lib/bundler/man/bundle-install.1 +5 -30
  88. data/bundler/lib/bundler/man/bundle-install.1.ronn +6 -29
  89. data/bundler/lib/bundler/man/bundle-list.1 +1 -1
  90. data/bundler/lib/bundler/man/bundle-lock.1 +1 -1
  91. data/bundler/lib/bundler/man/bundle-open.1 +22 -2
  92. data/bundler/lib/bundler/man/bundle-open.1.ronn +9 -1
  93. data/bundler/lib/bundler/man/bundle-outdated.1 +13 -9
  94. data/bundler/lib/bundler/man/bundle-outdated.1.ronn +12 -9
  95. data/bundler/lib/bundler/man/bundle-platform.1 +16 -6
  96. data/bundler/lib/bundler/man/bundle-platform.1.ronn +14 -7
  97. data/bundler/lib/bundler/man/bundle-plugin.1 +81 -0
  98. data/bundler/lib/bundler/man/bundle-plugin.1.ronn +59 -0
  99. data/bundler/lib/bundler/man/bundle-pristine.1 +1 -1
  100. data/bundler/lib/bundler/man/bundle-remove.1 +1 -1
  101. data/bundler/lib/bundler/man/bundle-show.1 +1 -1
  102. data/bundler/lib/bundler/man/bundle-update.1 +1 -1
  103. data/bundler/lib/bundler/man/bundle-version.1 +35 -0
  104. data/bundler/lib/bundler/man/bundle-version.1.ronn +24 -0
  105. data/bundler/lib/bundler/man/bundle-viz.1 +4 -1
  106. data/bundler/lib/bundler/man/bundle-viz.1.ronn +2 -0
  107. data/bundler/lib/bundler/man/bundle.1 +15 -10
  108. data/bundler/lib/bundler/man/bundle.1.ronn +12 -7
  109. data/bundler/lib/bundler/man/gemfile.5 +55 -55
  110. data/bundler/lib/bundler/man/gemfile.5.ronn +57 -53
  111. data/bundler/lib/bundler/man/index.txt +4 -0
  112. data/bundler/lib/bundler/match_metadata.rb +13 -0
  113. data/bundler/lib/bundler/match_remote_metadata.rb +29 -0
  114. data/bundler/lib/bundler/mirror.rb +5 -7
  115. data/bundler/lib/bundler/plugin/index.rb +5 -5
  116. data/bundler/lib/bundler/plugin/installer/rubygems.rb +0 -4
  117. data/bundler/lib/bundler/plugin/installer.rb +5 -2
  118. data/bundler/lib/bundler/plugin.rb +3 -1
  119. data/bundler/lib/bundler/remote_specification.rb +7 -12
  120. data/bundler/lib/bundler/resolver/base.rb +107 -0
  121. data/bundler/lib/bundler/resolver/candidate.rb +94 -0
  122. data/bundler/lib/bundler/resolver/incompatibility.rb +15 -0
  123. data/bundler/lib/bundler/resolver/package.rb +72 -0
  124. data/bundler/lib/bundler/resolver/root.rb +25 -0
  125. data/bundler/lib/bundler/resolver/spec_group.rb +42 -71
  126. data/bundler/lib/bundler/resolver.rb +335 -328
  127. data/bundler/lib/bundler/ruby_dsl.rb +7 -1
  128. data/bundler/lib/bundler/ruby_version.rb +8 -8
  129. data/bundler/lib/bundler/rubygems_ext.rb +100 -9
  130. data/bundler/lib/bundler/rubygems_gem_installer.rb +23 -14
  131. data/bundler/lib/bundler/rubygems_integration.rb +11 -15
  132. data/bundler/lib/bundler/runtime.rb +2 -6
  133. data/bundler/lib/bundler/safe_marshal.rb +31 -0
  134. data/bundler/lib/bundler/settings.rb +5 -11
  135. data/bundler/lib/bundler/setup.rb +4 -1
  136. data/bundler/lib/bundler/shared_helpers.rb +3 -3
  137. data/bundler/lib/bundler/source/git/git_proxy.rb +237 -74
  138. data/bundler/lib/bundler/source/git.rb +55 -30
  139. data/bundler/lib/bundler/source/metadata.rb +1 -2
  140. data/bundler/lib/bundler/source/path/installer.rb +1 -22
  141. data/bundler/lib/bundler/source/path.rb +6 -6
  142. data/bundler/lib/bundler/source/rubygems.rb +26 -81
  143. data/bundler/lib/bundler/source.rb +1 -1
  144. data/bundler/lib/bundler/source_list.rb +8 -2
  145. data/bundler/lib/bundler/spec_set.rb +60 -37
  146. data/bundler/lib/bundler/templates/Executable +1 -1
  147. data/bundler/lib/bundler/templates/Executable.bundler +5 -10
  148. data/bundler/lib/bundler/templates/Executable.standalone +2 -0
  149. data/bundler/lib/bundler/templates/newgem/Cargo.toml.tt +7 -0
  150. data/bundler/lib/bundler/templates/newgem/Gemfile.tt +3 -0
  151. data/bundler/lib/bundler/templates/newgem/README.md.tt +6 -4
  152. data/bundler/lib/bundler/templates/newgem/Rakefile.tt +12 -1
  153. data/bundler/lib/bundler/templates/newgem/bin/console.tt +0 -4
  154. data/bundler/lib/bundler/templates/newgem/circleci/config.yml.tt +12 -0
  155. data/bundler/lib/bundler/templates/newgem/ext/newgem/Cargo.toml.tt +15 -0
  156. data/bundler/lib/bundler/templates/newgem/ext/newgem/extconf-c.rb.tt +10 -0
  157. data/bundler/lib/bundler/templates/newgem/ext/newgem/extconf-rust.rb.tt +6 -0
  158. data/bundler/lib/bundler/templates/newgem/ext/newgem/newgem.c.tt +1 -1
  159. data/bundler/lib/bundler/templates/newgem/ext/newgem/src/lib.rs.tt +12 -0
  160. data/bundler/lib/bundler/templates/newgem/github/workflows/main.yml.tt +10 -0
  161. data/bundler/lib/bundler/templates/newgem/gitignore.tt +3 -0
  162. data/bundler/lib/bundler/templates/newgem/gitlab-ci.yml.tt +13 -4
  163. data/bundler/lib/bundler/templates/newgem/newgem.gemspec.tt +9 -2
  164. data/bundler/lib/bundler/ui/rg_proxy.rb +1 -1
  165. data/bundler/lib/bundler/ui/shell.rb +35 -12
  166. data/bundler/lib/bundler/ui/silent.rb +21 -5
  167. data/bundler/lib/bundler/uri_normalizer.rb +23 -0
  168. data/bundler/lib/bundler/vendor/connection_pool/lib/connection_pool/timed_stack.rb +3 -3
  169. data/bundler/lib/bundler/vendor/connection_pool/lib/connection_pool/wrapper.rb +0 -1
  170. data/bundler/lib/bundler/vendor/connection_pool/lib/connection_pool.rb +3 -1
  171. data/bundler/lib/bundler/vendor/fileutils/lib/fileutils.rb +1351 -409
  172. data/bundler/lib/bundler/vendor/net-http-persistent/README.rdoc +1 -1
  173. data/bundler/lib/bundler/vendor/net-http-persistent/lib/net/http/persistent.rb +1 -1
  174. data/bundler/lib/bundler/vendor/pub_grub/LICENSE.txt +21 -0
  175. data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/assignment.rb +20 -0
  176. data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/basic_package_source.rb +189 -0
  177. data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/failure_writer.rb +182 -0
  178. data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/incompatibility.rb +150 -0
  179. data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/package.rb +43 -0
  180. data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/partial_solution.rb +121 -0
  181. data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/rubygems.rb +45 -0
  182. data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/solve_failure.rb +19 -0
  183. data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/static_package_source.rb +60 -0
  184. data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/term.rb +105 -0
  185. data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/version.rb +3 -0
  186. data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/version_constraint.rb +129 -0
  187. data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/version_range.rb +411 -0
  188. data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/version_solver.rb +248 -0
  189. data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/version_union.rb +178 -0
  190. data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub.rb +31 -0
  191. data/bundler/lib/bundler/vendor/thor/lib/thor/shell/basic.rb +1 -1
  192. data/bundler/lib/bundler/vendor/uri/lib/uri/common.rb +64 -16
  193. data/bundler/lib/bundler/vendor/uri/lib/uri/file.rb +7 -1
  194. data/bundler/lib/bundler/vendor/uri/lib/uri/ftp.rb +2 -1
  195. data/bundler/lib/bundler/vendor/uri/lib/uri/generic.rb +27 -7
  196. data/bundler/lib/bundler/vendor/uri/lib/uri/http.rb +40 -2
  197. data/bundler/lib/bundler/vendor/uri/lib/uri/https.rb +2 -1
  198. data/bundler/lib/bundler/vendor/uri/lib/uri/ldap.rb +1 -1
  199. data/bundler/lib/bundler/vendor/uri/lib/uri/ldaps.rb +2 -1
  200. data/bundler/lib/bundler/vendor/uri/lib/uri/mailto.rb +2 -2
  201. data/bundler/lib/bundler/vendor/uri/lib/uri/rfc2396_parser.rb +15 -9
  202. data/bundler/lib/bundler/vendor/uri/lib/uri/rfc3986_parser.rb +11 -6
  203. data/bundler/lib/bundler/vendor/uri/lib/uri/version.rb +1 -1
  204. data/bundler/lib/bundler/vendor/uri/lib/uri/ws.rb +1 -2
  205. data/bundler/lib/bundler/vendor/uri/lib/uri/wss.rb +2 -1
  206. data/bundler/lib/bundler/vendor/uri/lib/uri.rb +3 -2
  207. data/bundler/lib/bundler/vendored_persistent.rb +1 -33
  208. data/bundler/lib/bundler/{vendored_tmpdir.rb → vendored_pub_grub.rb} +1 -1
  209. data/bundler/lib/bundler/version.rb +5 -1
  210. data/bundler/lib/bundler/worker.rb +5 -7
  211. data/bundler/lib/bundler.rb +25 -77
  212. data/{bin → exe}/gem +4 -5
  213. data/{bin → exe}/update_rubygems +12 -10
  214. data/lib/rubygems/available_set.rb +4 -3
  215. data/lib/rubygems/basic_specification.rb +5 -4
  216. data/lib/rubygems/bundler_version_finder.rb +2 -2
  217. data/lib/rubygems/command.rb +41 -32
  218. data/lib/rubygems/command_manager.rb +30 -15
  219. data/lib/rubygems/commands/build_command.rb +12 -8
  220. data/lib/rubygems/commands/cert_command.rb +34 -33
  221. data/lib/rubygems/commands/check_command.rb +21 -20
  222. data/lib/rubygems/commands/cleanup_command.rb +18 -17
  223. data/lib/rubygems/commands/contents_command.rb +14 -13
  224. data/lib/rubygems/commands/dependency_command.rb +17 -16
  225. data/lib/rubygems/commands/environment_command.rb +6 -5
  226. data/lib/rubygems/commands/exec_command.rb +249 -0
  227. data/lib/rubygems/commands/fetch_command.rb +10 -9
  228. data/lib/rubygems/commands/generate_index_command.rb +18 -17
  229. data/lib/rubygems/commands/help_command.rb +7 -6
  230. data/lib/rubygems/commands/info_command.rb +3 -3
  231. data/lib/rubygems/commands/install_command.rb +28 -23
  232. data/lib/rubygems/commands/list_command.rb +4 -3
  233. data/lib/rubygems/commands/lock_command.rb +5 -4
  234. data/lib/rubygems/commands/mirror_command.rb +4 -3
  235. data/lib/rubygems/commands/open_command.rb +10 -9
  236. data/lib/rubygems/commands/outdated_command.rb +6 -5
  237. data/lib/rubygems/commands/owner_command.rb +17 -14
  238. data/lib/rubygems/commands/pristine_command.rb +46 -36
  239. data/lib/rubygems/commands/push_command.rb +9 -8
  240. data/lib/rubygems/commands/query_command.rb +9 -8
  241. data/lib/rubygems/commands/rdoc_command.rb +21 -19
  242. data/lib/rubygems/commands/search_command.rb +4 -3
  243. data/lib/rubygems/commands/server_command.rb +4 -3
  244. data/lib/rubygems/commands/setup_command.rb +97 -106
  245. data/lib/rubygems/commands/signin_command.rb +10 -9
  246. data/lib/rubygems/commands/signout_command.rb +8 -7
  247. data/lib/rubygems/commands/sources_command.rb +22 -21
  248. data/lib/rubygems/commands/specification_command.rb +14 -13
  249. data/lib/rubygems/commands/stale_command.rb +3 -2
  250. data/lib/rubygems/commands/uninstall_command.rb +44 -40
  251. data/lib/rubygems/commands/unpack_command.rb +14 -13
  252. data/lib/rubygems/commands/update_command.rb +42 -63
  253. data/lib/rubygems/commands/which_command.rb +8 -7
  254. data/lib/rubygems/commands/yank_command.rb +12 -11
  255. data/lib/rubygems/config_file.rb +55 -21
  256. data/lib/rubygems/core_ext/kernel_gem.rb +1 -6
  257. data/lib/rubygems/core_ext/kernel_require.rb +109 -115
  258. data/lib/rubygems/core_ext/kernel_warn.rb +33 -37
  259. data/lib/rubygems/core_ext/tcpsocket_init.rb +3 -1
  260. data/lib/rubygems/defaults.rb +33 -18
  261. data/lib/rubygems/dependency.rb +15 -11
  262. data/lib/rubygems/dependency_installer.rb +38 -37
  263. data/lib/rubygems/dependency_list.rb +7 -6
  264. data/lib/rubygems/deprecate.rb +3 -2
  265. data/lib/rubygems/doctor.rb +19 -18
  266. data/lib/rubygems/errors.rb +3 -2
  267. data/lib/rubygems/exceptions.rb +16 -8
  268. data/lib/rubygems/ext/build_error.rb +2 -1
  269. data/lib/rubygems/ext/builder.rb +37 -21
  270. data/lib/rubygems/ext/cargo_builder/link_flag_converter.rb +9 -5
  271. data/lib/rubygems/ext/cargo_builder.rb +150 -111
  272. data/lib/rubygems/ext/cmake_builder.rb +2 -2
  273. data/lib/rubygems/ext/configure_builder.rb +2 -1
  274. data/lib/rubygems/ext/ext_conf_builder.rb +11 -9
  275. data/lib/rubygems/ext/rake_builder.rb +7 -5
  276. data/lib/rubygems/ext.rb +8 -7
  277. data/lib/rubygems/gem_runner.rb +6 -5
  278. data/lib/rubygems/gemcutter_utilities/webauthn_listener/response.rb +163 -0
  279. data/lib/rubygems/gemcutter_utilities/webauthn_listener.rb +105 -0
  280. data/lib/rubygems/gemcutter_utilities/webauthn_poller.rb +78 -0
  281. data/lib/rubygems/gemcutter_utilities.rb +90 -34
  282. data/lib/rubygems/indexer.rb +29 -28
  283. data/lib/rubygems/install_default_message.rb +3 -2
  284. data/lib/rubygems/install_message.rb +3 -2
  285. data/lib/rubygems/install_update_options.rb +56 -55
  286. data/lib/rubygems/installer.rb +54 -46
  287. data/lib/rubygems/installer_uninstaller_utils.rb +2 -2
  288. data/lib/rubygems/local_remote_options.rb +19 -20
  289. data/lib/rubygems/mock_gem_ui.rb +3 -2
  290. data/lib/rubygems/name_tuple.rb +5 -4
  291. data/lib/rubygems/optparse/lib/optparse.rb +20 -15
  292. data/lib/rubygems/optparse.rb +1 -1
  293. data/lib/rubygems/package/digest_io.rb +1 -0
  294. data/lib/rubygems/package/file_source.rb +3 -2
  295. data/lib/rubygems/package/io_source.rb +1 -0
  296. data/lib/rubygems/package/old.rb +9 -8
  297. data/lib/rubygems/package/source.rb +1 -0
  298. data/lib/rubygems/package/tar_header.rb +63 -62
  299. data/lib/rubygems/package/tar_reader/entry.rb +91 -9
  300. data/lib/rubygems/package/tar_reader.rb +2 -29
  301. data/lib/rubygems/package/tar_writer.rb +8 -7
  302. data/lib/rubygems/package.rb +64 -48
  303. data/lib/rubygems/package_task.rb +5 -4
  304. data/lib/rubygems/path_support.rb +1 -0
  305. data/lib/rubygems/platform.rb +79 -53
  306. data/lib/rubygems/psych_tree.rb +2 -1
  307. data/lib/rubygems/query_utils.rb +35 -35
  308. data/lib/rubygems/rdoc.rb +3 -2
  309. data/lib/rubygems/remote_fetcher.rb +23 -22
  310. data/lib/rubygems/request/connection_pools.rb +4 -4
  311. data/lib/rubygems/request/http_pool.rb +2 -1
  312. data/lib/rubygems/request/https_pool.rb +1 -0
  313. data/lib/rubygems/request.rb +23 -22
  314. data/lib/rubygems/request_set/gem_dependency_api.rb +123 -123
  315. data/lib/rubygems/request_set/lockfile/parser.rb +28 -27
  316. data/lib/rubygems/request_set/lockfile/tokenizer.rb +5 -3
  317. data/lib/rubygems/request_set/lockfile.rb +6 -5
  318. data/lib/rubygems/request_set.rb +20 -19
  319. data/lib/rubygems/requirement.rb +15 -14
  320. data/lib/rubygems/resolver/activation_request.rb +4 -3
  321. data/lib/rubygems/resolver/api_set.rb +5 -4
  322. data/lib/rubygems/resolver/api_specification.rb +7 -6
  323. data/lib/rubygems/resolver/best_set.rb +6 -5
  324. data/lib/rubygems/resolver/composed_set.rb +1 -0
  325. data/lib/rubygems/resolver/conflict.rb +11 -10
  326. data/lib/rubygems/resolver/current_set.rb +1 -0
  327. data/lib/rubygems/resolver/dependency_request.rb +3 -2
  328. data/lib/rubygems/resolver/git_set.rb +3 -2
  329. data/lib/rubygems/resolver/git_specification.rb +7 -6
  330. data/lib/rubygems/resolver/index_set.rb +4 -3
  331. data/lib/rubygems/resolver/index_specification.rb +7 -5
  332. data/lib/rubygems/resolver/installed_specification.rb +5 -4
  333. data/lib/rubygems/resolver/installer_set.rb +15 -17
  334. data/lib/rubygems/resolver/local_specification.rb +3 -2
  335. data/lib/rubygems/resolver/lock_set.rb +5 -4
  336. data/lib/rubygems/resolver/lock_specification.rb +5 -4
  337. data/lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph.rb +1 -1
  338. data/lib/rubygems/resolver/molinillo/lib/molinillo/errors.rb +32 -26
  339. data/lib/rubygems/resolver/molinillo/lib/molinillo/gem_metadata.rb +1 -1
  340. data/lib/rubygems/resolver/molinillo.rb +2 -1
  341. data/lib/rubygems/resolver/requirement_list.rb +1 -0
  342. data/lib/rubygems/resolver/set.rb +1 -0
  343. data/lib/rubygems/resolver/source_set.rb +2 -0
  344. data/lib/rubygems/resolver/spec_specification.rb +1 -0
  345. data/lib/rubygems/resolver/specification.rb +2 -1
  346. data/lib/rubygems/resolver/stats.rb +2 -1
  347. data/lib/rubygems/resolver/vendor_set.rb +2 -1
  348. data/lib/rubygems/resolver/vendor_specification.rb +4 -3
  349. data/lib/rubygems/resolver.rb +41 -40
  350. data/lib/rubygems/s3_uri_signer.rb +10 -8
  351. data/lib/rubygems/safe_yaml.rb +4 -2
  352. data/lib/rubygems/security/policies.rb +48 -47
  353. data/lib/rubygems/security/policy.rb +19 -18
  354. data/lib/rubygems/security/signer.rb +6 -5
  355. data/lib/rubygems/security/trust_dir.rb +5 -4
  356. data/lib/rubygems/security.rb +30 -42
  357. data/lib/rubygems/security_option.rb +6 -5
  358. data/lib/rubygems/shellwords.rb +3 -0
  359. data/lib/rubygems/source/git.rb +22 -22
  360. data/lib/rubygems/source/installed.rb +2 -1
  361. data/lib/rubygems/source/local.rb +3 -2
  362. data/lib/rubygems/source/lock.rb +1 -0
  363. data/lib/rubygems/source/specific_file.rb +2 -1
  364. data/lib/rubygems/source/vendor.rb +1 -0
  365. data/lib/rubygems/source.rb +16 -16
  366. data/lib/rubygems/spec_fetcher.rb +10 -9
  367. data/lib/rubygems/specification.rb +121 -114
  368. data/lib/rubygems/specification_policy.rb +36 -15
  369. data/lib/rubygems/stub_specification.rb +11 -9
  370. data/lib/rubygems/text.rb +2 -2
  371. data/lib/rubygems/tsort/lib/tsort.rb +308 -310
  372. data/lib/rubygems/tsort.rb +1 -1
  373. data/lib/rubygems/uninstaller.rb +19 -18
  374. data/lib/rubygems/update_suggestion.rb +69 -0
  375. data/lib/rubygems/uri.rb +4 -4
  376. data/lib/rubygems/uri_formatter.rb +1 -1
  377. data/lib/rubygems/user_interaction.rb +37 -21
  378. data/lib/rubygems/util/licenses.rb +4 -3
  379. data/lib/rubygems/util/list.rb +1 -0
  380. data/lib/rubygems/util.rb +12 -15
  381. data/lib/rubygems/validator.rb +7 -6
  382. data/lib/rubygems/version.rb +17 -11
  383. data/lib/rubygems/version_option.rb +4 -3
  384. data/lib/rubygems.rb +89 -68
  385. data/rubygems-update.gemspec +10 -8
  386. data/setup.rb +10 -9
  387. data/test/rubygems/alternate_cert.pem +14 -14
  388. data/test/rubygems/alternate_cert_32.pem +15 -15
  389. data/test/rubygems/alternate_key.pem +25 -25
  390. data/test/rubygems/bad_rake.rb +1 -0
  391. data/test/rubygems/bundler_test_gem.rb +421 -0
  392. data/test/rubygems/child_cert.pem +15 -16
  393. data/test/rubygems/child_cert_32.pem +15 -16
  394. data/test/rubygems/child_key.pem +25 -25
  395. data/test/rubygems/encrypted_private_key.pem +26 -26
  396. data/test/rubygems/expired_cert.pem +15 -15
  397. data/test/rubygems/fake_certlib/openssl.rb +1 -0
  398. data/test/rubygems/future_cert.pem +15 -15
  399. data/test/rubygems/future_cert_32.pem +15 -15
  400. data/test/rubygems/good_rake.rb +1 -0
  401. data/test/rubygems/grandchild_cert.pem +15 -16
  402. data/test/rubygems/grandchild_cert_32.pem +15 -16
  403. data/test/rubygems/grandchild_key.pem +25 -25
  404. data/test/rubygems/helper.rb +172 -151
  405. data/test/rubygems/installer_test_case.rb +14 -13
  406. data/test/rubygems/invalid_issuer_cert.pem +16 -16
  407. data/test/rubygems/invalid_issuer_cert_32.pem +16 -16
  408. data/test/rubygems/invalid_key.pem +25 -25
  409. data/test/rubygems/invalid_signer_cert.pem +15 -15
  410. data/test/rubygems/invalid_signer_cert_32.pem +15 -15
  411. data/test/rubygems/invalidchild_cert.pem +15 -16
  412. data/test/rubygems/invalidchild_cert_32.pem +15 -16
  413. data/test/rubygems/invalidchild_key.pem +25 -25
  414. data/test/rubygems/multifactor_auth_utilities.rb +111 -0
  415. data/test/rubygems/package/tar_test_case.rb +53 -17
  416. data/test/rubygems/packages/Bluebie-legs-0.6.2.gem +0 -0
  417. data/test/rubygems/plugin/exception/rubygems_plugin.rb +2 -1
  418. data/test/rubygems/plugin/load/rubygems_plugin.rb +1 -0
  419. data/test/rubygems/plugin/standarderror/rubygems_plugin.rb +2 -1
  420. data/test/rubygems/private_key.pem +25 -25
  421. data/test/rubygems/public_cert.pem +16 -16
  422. data/test/rubygems/public_cert_32.pem +15 -15
  423. data/test/rubygems/public_key.pem +7 -7
  424. data/test/rubygems/rubygems/commands/crash_command.rb +1 -0
  425. data/test/rubygems/rubygems_plugin.rb +3 -2
  426. data/test/rubygems/simple_gem.rb +2 -1
  427. data/test/rubygems/specifications/bar-0.0.2.gemspec +2 -0
  428. data/test/rubygems/specifications/rubyforge-0.0.1.gemspec +6 -4
  429. data/test/rubygems/test_bundled_ca.rb +13 -12
  430. data/test/rubygems/test_config.rb +5 -4
  431. data/test/rubygems/test_deprecate.rb +5 -4
  432. data/test/rubygems/test_exit.rb +9 -3
  433. data/test/rubygems/test_gem.rb +339 -677
  434. data/test/rubygems/test_gem_available_set.rb +22 -21
  435. data/test/rubygems/test_gem_bundler_version_finder.rb +6 -4
  436. data/test/rubygems/test_gem_command.rb +45 -44
  437. data/test/rubygems/test_gem_command_manager.rb +96 -30
  438. data/test/rubygems/test_gem_commands_build_command.rb +74 -63
  439. data/test/rubygems/test_gem_commands_cert_command.rb +98 -99
  440. data/test/rubygems/test_gem_commands_check_command.rb +5 -4
  441. data/test/rubygems/test_gem_commands_cleanup_command.rb +41 -40
  442. data/test/rubygems/test_gem_commands_contents_command.rb +28 -27
  443. data/test/rubygems/test_gem_commands_dependency_command.rb +37 -36
  444. data/test/rubygems/test_gem_commands_environment_command.rb +17 -16
  445. data/test/rubygems/test_gem_commands_exec_command.rb +853 -0
  446. data/test/rubygems/test_gem_commands_fetch_command.rb +38 -37
  447. data/test/rubygems/test_gem_commands_generate_index_command.rb +8 -7
  448. data/test/rubygems/test_gem_commands_help_command.rb +14 -13
  449. data/test/rubygems/test_gem_commands_info_command.rb +29 -2
  450. data/test/rubygems/test_gem_commands_install_command.rb +152 -132
  451. data/test/rubygems/test_gem_commands_list_command.rb +5 -4
  452. data/test/rubygems/test_gem_commands_lock_command.rb +11 -10
  453. data/test/rubygems/test_gem_commands_mirror.rb +3 -2
  454. data/test/rubygems/test_gem_commands_open_command.rb +5 -4
  455. data/test/rubygems/test_gem_commands_outdated_command.rb +10 -9
  456. data/test/rubygems/test_gem_commands_owner_command.rb +227 -50
  457. data/test/rubygems/test_gem_commands_pristine_command.rb +142 -93
  458. data/test/rubygems/test_gem_commands_push_command.rb +189 -64
  459. data/test/rubygems/test_gem_commands_query_command.rb +74 -73
  460. data/test/rubygems/test_gem_commands_search_command.rb +3 -2
  461. data/test/rubygems/test_gem_commands_server_command.rb +3 -2
  462. data/test/rubygems/test_gem_commands_setup_command.rb +123 -96
  463. data/test/rubygems/test_gem_commands_signin_command.rb +71 -31
  464. data/test/rubygems/test_gem_commands_signout_command.rb +3 -3
  465. data/test/rubygems/test_gem_commands_sources_command.rb +29 -29
  466. data/test/rubygems/test_gem_commands_specification_command.rb +33 -32
  467. data/test/rubygems/test_gem_commands_stale_command.rb +5 -4
  468. data/test/rubygems/test_gem_commands_uninstall_command.rb +99 -81
  469. data/test/rubygems/test_gem_commands_unpack_command.rb +32 -31
  470. data/test/rubygems/test_gem_commands_update_command.rb +96 -95
  471. data/test/rubygems/test_gem_commands_which_command.rb +7 -6
  472. data/test/rubygems/test_gem_commands_yank_command.rb +162 -43
  473. data/test/rubygems/test_gem_config_file.rb +94 -81
  474. data/test/rubygems/test_gem_dependency.rb +76 -73
  475. data/test/rubygems/test_gem_dependency_installer.rb +200 -165
  476. data/test/rubygems/test_gem_dependency_list.rb +48 -47
  477. data/test/rubygems/test_gem_dependency_resolution_error.rb +5 -4
  478. data/test/rubygems/test_gem_doctor.rb +27 -26
  479. data/test/rubygems/test_gem_ext_builder.rb +60 -61
  480. data/test/rubygems/test_gem_ext_cargo_builder/custom_name/custom_name.gemspec +4 -4
  481. data/test/rubygems/test_gem_ext_cargo_builder/custom_name/{Cargo.lock → ext/custom_name_lib/Cargo.lock} +23 -33
  482. data/test/rubygems/test_gem_ext_cargo_builder/custom_name/{Cargo.toml → ext/custom_name_lib/Cargo.toml} +1 -1
  483. data/test/rubygems/test_gem_ext_cargo_builder/custom_name/{src → ext/custom_name_lib/src}/lib.rs +1 -1
  484. data/test/rubygems/test_gem_ext_cargo_builder/custom_name/lib/custom_name.rb +3 -0
  485. data/test/rubygems/test_gem_ext_cargo_builder/rust_ruby_example/Cargo.lock +37 -33
  486. data/test/rubygems/test_gem_ext_cargo_builder/rust_ruby_example/Cargo.toml +1 -1
  487. data/test/rubygems/test_gem_ext_cargo_builder/rust_ruby_example/rust_ruby_example.gemspec +2 -0
  488. data/test/rubygems/test_gem_ext_cargo_builder/rust_ruby_example/src/lib.rs +12 -0
  489. data/test/rubygems/test_gem_ext_cargo_builder.rb +48 -59
  490. data/test/rubygems/test_gem_ext_cargo_builder_link_flag_converter.rb +20 -19
  491. data/test/rubygems/test_gem_ext_cargo_builder_unit.rb +21 -36
  492. data/test/rubygems/test_gem_ext_cmake_builder.rb +16 -15
  493. data/test/rubygems/test_gem_ext_configure_builder.rb +14 -13
  494. data/test/rubygems/test_gem_ext_ext_conf_builder.rb +51 -52
  495. data/test/rubygems/test_gem_ext_rake_builder.rb +16 -15
  496. data/test/rubygems/test_gem_gem_runner.rb +15 -9
  497. data/test/rubygems/test_gem_gemcutter_utilities.rb +170 -84
  498. data/test/rubygems/test_gem_impossible_dependencies_error.rb +5 -4
  499. data/test/rubygems/test_gem_indexer.rb +87 -67
  500. data/test/rubygems/test_gem_install_update_options.rb +17 -16
  501. data/test/rubygems/test_gem_installer.rb +422 -304
  502. data/test/rubygems/test_gem_local_remote_options.rb +11 -10
  503. data/test/rubygems/test_gem_name_tuple.rb +5 -4
  504. data/test/rubygems/test_gem_package.rb +243 -231
  505. data/test/rubygems/test_gem_package_old.rb +14 -13
  506. data/test/rubygems/test_gem_package_tar_header.rb +48 -47
  507. data/test/rubygems/test_gem_package_tar_reader.rb +56 -8
  508. data/test/rubygems/test_gem_package_tar_reader_entry.rb +162 -16
  509. data/test/rubygems/test_gem_package_tar_writer.rb +77 -76
  510. data/test/rubygems/test_gem_package_task.rb +19 -18
  511. data/test/rubygems/test_gem_path_support.rb +15 -14
  512. data/test/rubygems/test_gem_platform.rb +333 -227
  513. data/test/rubygems/test_gem_rdoc.rb +15 -14
  514. data/test/rubygems/test_gem_remote_fetcher.rb +155 -154
  515. data/test/rubygems/test_gem_request.rb +64 -58
  516. data/test/rubygems/test_gem_request_connection_pools.rb +30 -29
  517. data/test/rubygems/test_gem_request_set.rb +101 -100
  518. data/test/rubygems/test_gem_request_set_gem_dependency_api.rb +210 -211
  519. data/test/rubygems/test_gem_request_set_lockfile.rb +87 -86
  520. data/test/rubygems/test_gem_request_set_lockfile_parser.rb +58 -57
  521. data/test/rubygems/test_gem_request_set_lockfile_tokenizer.rb +63 -62
  522. data/test/rubygems/test_gem_requirement.rb +48 -41
  523. data/test/rubygems/test_gem_resolver.rb +167 -99
  524. data/test/rubygems/test_gem_resolver_activation_request.rb +7 -6
  525. data/test/rubygems/test_gem_resolver_api_set.rb +34 -33
  526. data/test/rubygems/test_gem_resolver_api_specification.rb +48 -47
  527. data/test/rubygems/test_gem_resolver_best_set.rb +23 -22
  528. data/test/rubygems/test_gem_resolver_composed_set.rb +2 -1
  529. data/test/rubygems/test_gem_resolver_conflict.rb +13 -12
  530. data/test/rubygems/test_gem_resolver_dependency_request.rb +16 -15
  531. data/test/rubygems/test_gem_resolver_git_set.rb +22 -21
  532. data/test/rubygems/test_gem_resolver_git_specification.rb +22 -21
  533. data/test/rubygems/test_gem_resolver_index_set.rb +13 -12
  534. data/test/rubygems/test_gem_resolver_index_specification.rb +17 -16
  535. data/test/rubygems/test_gem_resolver_installed_specification.rb +6 -5
  536. data/test/rubygems/test_gem_resolver_installer_set.rb +79 -34
  537. data/test/rubygems/test_gem_resolver_local_specification.rb +8 -7
  538. data/test/rubygems/test_gem_resolver_lock_set.rb +13 -12
  539. data/test/rubygems/test_gem_resolver_lock_specification.rb +18 -17
  540. data/test/rubygems/test_gem_resolver_requirement_list.rb +2 -1
  541. data/test/rubygems/test_gem_resolver_specification.rb +9 -8
  542. data/test/rubygems/test_gem_resolver_vendor_set.rb +7 -6
  543. data/test/rubygems/test_gem_resolver_vendor_specification.rb +11 -10
  544. data/test/rubygems/test_gem_security.rb +69 -68
  545. data/test/rubygems/test_gem_security_policy.rb +72 -72
  546. data/test/rubygems/test_gem_security_signer.rb +35 -34
  547. data/test/rubygems/test_gem_security_trust_dir.rb +7 -6
  548. data/test/rubygems/test_gem_silent_ui.rb +39 -32
  549. data/test/rubygems/test_gem_source.rb +45 -44
  550. data/test/rubygems/test_gem_source_fetch_problem.rb +10 -9
  551. data/test/rubygems/test_gem_source_git.rb +69 -62
  552. data/test/rubygems/test_gem_source_installed.rb +17 -16
  553. data/test/rubygems/test_gem_source_list.rb +6 -5
  554. data/test/rubygems/test_gem_source_local.rb +15 -14
  555. data/test/rubygems/test_gem_source_lock.rb +32 -31
  556. data/test/rubygems/test_gem_source_specific_file.rb +18 -17
  557. data/test/rubygems/test_gem_source_subpath_problem.rb +8 -7
  558. data/test/rubygems/test_gem_source_vendor.rb +14 -13
  559. data/test/rubygems/test_gem_spec_fetcher.rb +73 -72
  560. data/test/rubygems/test_gem_specification.rb +533 -469
  561. data/test/rubygems/test_gem_stream_ui.rb +53 -22
  562. data/test/rubygems/test_gem_stub_specification.rb +33 -32
  563. data/test/rubygems/test_gem_text.rb +2 -1
  564. data/test/rubygems/test_gem_uninstaller.rb +118 -117
  565. data/test/rubygems/test_gem_unsatisfiable_dependency_error.rb +4 -3
  566. data/test/rubygems/test_gem_update_suggestion.rb +209 -0
  567. data/test/rubygems/test_gem_uri.rb +6 -4
  568. data/test/rubygems/test_gem_uri_formatter.rb +15 -14
  569. data/test/rubygems/test_gem_util.rb +24 -23
  570. data/test/rubygems/test_gem_validator.rb +8 -8
  571. data/test/rubygems/test_gem_version.rb +24 -16
  572. data/test/rubygems/test_gem_version_option.rb +16 -15
  573. data/test/rubygems/test_kernel.rb +43 -48
  574. data/test/rubygems/test_project_sanity.rb +32 -3
  575. data/test/rubygems/test_remote_fetch_error.rb +8 -7
  576. data/test/rubygems/test_require.rb +118 -103
  577. data/test/rubygems/test_rubygems.rb +10 -8
  578. data/test/rubygems/test_webauthn_listener.rb +143 -0
  579. data/test/rubygems/test_webauthn_listener_response.rb +93 -0
  580. data/test/rubygems/test_webauthn_poller.rb +124 -0
  581. data/test/rubygems/utilities.rb +98 -34
  582. data/test/rubygems/wrong_key_cert.pem +15 -15
  583. data/test/rubygems/wrong_key_cert_32.pem +15 -15
  584. data/test/test_changelog_generator.rb +1 -1
  585. metadata +99 -46
  586. data/bundler/lib/bundler/dep_proxy.rb +0 -55
  587. data/bundler/lib/bundler/templates/gems.rb +0 -5
  588. data/bundler/lib/bundler/templates/newgem/ext/newgem/extconf.rb.tt +0 -5
  589. data/bundler/lib/bundler/templates/newgem/travis.yml.tt +0 -6
  590. data/bundler/lib/bundler/vendor/molinillo/LICENSE +0 -9
  591. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/delegates/resolution_state.rb +0 -57
  592. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/delegates/specification_provider.rb +0 -88
  593. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/action.rb +0 -36
  594. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/add_edge_no_circular.rb +0 -66
  595. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/add_vertex.rb +0 -62
  596. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/delete_edge.rb +0 -63
  597. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/detach_vertex_named.rb +0 -61
  598. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/log.rb +0 -126
  599. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/set_payload.rb +0 -46
  600. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/tag.rb +0 -36
  601. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/vertex.rb +0 -164
  602. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph.rb +0 -255
  603. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/errors.rb +0 -149
  604. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/gem_metadata.rb +0 -6
  605. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/modules/specification_provider.rb +0 -112
  606. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/modules/ui.rb +0 -67
  607. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/resolution.rb +0 -839
  608. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/resolver.rb +0 -46
  609. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/state.rb +0 -58
  610. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo.rb +0 -11
  611. data/bundler/lib/bundler/vendor/tmpdir/lib/tmpdir.rb +0 -154
  612. data/bundler/lib/bundler/vendored_molinillo.rb +0 -4
  613. data/bundler/lib/bundler/version_ranges.rb +0 -122
  614. data/test/rubygems/test_gem_ext_cargo_builder/custom_name/build.rb +0 -21
  615. data/test/rubygems/test_gem_ext_cargo_builder/rust_ruby_example/build.rb +0 -21
@@ -1,72 +1,57 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require_relative 'helper'
4
- require 'rubygems/ext'
3
+ require_relative "helper"
4
+ require "rubygems/ext"
5
5
 
6
6
  class TestGemExtCargoBuilderUnit < Gem::TestCase
7
7
  def test_cargo_command_passes_args
8
8
  skip_unsupported_platforms!
9
- spec = Gem::Specification.new 'rust_ruby_example', '0.1.0'
10
- builder = Gem::Ext::CargoBuilder.new(spec)
11
- command = builder.cargo_command(Dir.pwd, @tempdir, ['--all-features'])
9
+ builder = Gem::Ext::CargoBuilder.new
10
+ command = builder.cargo_command(Dir.pwd, @tempdir, ["--all-features"])
12
11
 
13
- assert_includes command, '--all-features'
12
+ assert_includes command, "--all-features"
14
13
  end
15
14
 
16
15
  def test_cargo_command_locks_in_release_profile
17
16
  skip_unsupported_platforms!
18
- spec = Gem::Specification.new 'rust_ruby_example', '0.1.0'
19
- builder = Gem::Ext::CargoBuilder.new(spec)
17
+ builder = Gem::Ext::CargoBuilder.new
20
18
  builder.profile = :release
21
19
  command = builder.cargo_command(Dir.pwd, @tempdir)
22
20
 
23
- assert_includes command, '--locked'
24
- end
25
-
26
- def test_cargo_command_does_not_lock_in_dev_profile
27
- skip_unsupported_platforms!
28
- spec = Gem::Specification.new 'rust_ruby_example', '0.1.0'
29
- builder = Gem::Ext::CargoBuilder.new(spec)
30
- builder.profile = :dev
31
- command = builder.cargo_command(Dir.pwd, @tempdir)
32
-
33
- assert_not_includes command, '--locked'
21
+ assert_includes command, "--locked"
34
22
  end
35
23
 
36
24
  def test_cargo_command_passes_respects_cargo_env_var
37
25
  skip_unsupported_platforms!
38
- old_cargo = ENV['CARGO']
39
- ENV['CARGO'] = 'mycargo'
40
- spec = Gem::Specification.new 'rust_ruby_example', '0.1.0'
41
- builder = Gem::Ext::CargoBuilder.new(spec)
26
+ old_cargo = ENV["CARGO"]
27
+ ENV["CARGO"] = "mycargo"
28
+ builder = Gem::Ext::CargoBuilder.new
42
29
  command = builder.cargo_command(Dir.pwd, @tempdir)
43
30
 
44
- assert_includes command, 'mycargo'
31
+ assert_includes command, "mycargo"
45
32
  ensure
46
- ENV['CARGO'] = old_cargo
33
+ ENV["CARGO"] = old_cargo
47
34
  end
48
35
 
49
36
  def test_build_env_includes_rbconfig
50
37
  skip_unsupported_platforms!
51
- spec = Gem::Specification.new 'rust_ruby_example', '0.1.0'
52
- builder = Gem::Ext::CargoBuilder.new(spec)
38
+ builder = Gem::Ext::CargoBuilder.new
53
39
  env = builder.build_env
54
40
 
55
- assert_equal env.fetch('RBCONFIG_RUBY_SO_NAME'), RbConfig::CONFIG['RUBY_SO_NAME']
41
+ assert_equal env.fetch("RBCONFIG_RUBY_SO_NAME"), RbConfig::CONFIG["RUBY_SO_NAME"]
56
42
  end
57
43
 
58
44
  def test_cargo_command_passes_respects_cargo_build_target
59
45
  skip_unsupported_platforms!
60
- old_cargo = ENV['CARGO_BUILD_TARGET']
61
- ENV['CARGO_BUILD_TARGET'] = 'x86_64-unknown-linux-gnu'
62
- spec = Gem::Specification.new 'rust_ruby_example', '0.1.0'
63
- builder = Gem::Ext::CargoBuilder.new(spec)
64
- command = builder.cargo_command(Dir.pwd, @tempdir, ['--locked'])
46
+ old_cargo = ENV["CARGO_BUILD_TARGET"]
47
+ ENV["CARGO_BUILD_TARGET"] = "x86_64-unknown-linux-gnu"
48
+ builder = Gem::Ext::CargoBuilder.new
49
+ command = builder.cargo_command(Dir.pwd, @tempdir, ["--locked"])
65
50
 
66
- assert_includes command, '--target'
67
- assert_includes command, 'x86_64-unknown-linux-gnu'
51
+ assert_includes command, "--target"
52
+ assert_includes command, "x86_64-unknown-linux-gnu"
68
53
  ensure
69
- ENV['CARGO_BUILD_TARGET'] = old_cargo
54
+ ENV["CARGO_BUILD_TARGET"] = old_cargo
70
55
  end
71
56
 
72
57
  def skip_unsupported_platforms!
@@ -1,6 +1,7 @@
1
1
  # frozen_string_literal: true
2
- require_relative 'helper'
3
- require 'rubygems/ext'
2
+
3
+ require_relative "helper"
4
+ require "rubygems/ext"
4
5
 
5
6
  class TestGemExtCmakeBuilder < Gem::TestCase
6
7
  def setup
@@ -12,21 +13,21 @@ class TestGemExtCmakeBuilder < Gem::TestCase
12
13
  require "open3"
13
14
 
14
15
  begin
15
- _, status = Open3.capture2e('cmake')
16
- pend 'cmake not present' unless status.success?
16
+ _, status = Open3.capture2e("cmake")
17
+ pend "cmake not present" unless status.success?
17
18
  rescue Errno::ENOENT
18
- pend 'cmake not present'
19
+ pend "cmake not present"
19
20
  end
20
21
 
21
- @ext = File.join @tempdir, 'ext'
22
- @dest_path = File.join @tempdir, 'prefix'
22
+ @ext = File.join @tempdir, "ext"
23
+ @dest_path = File.join @tempdir, "prefix"
23
24
 
24
25
  FileUtils.mkdir_p @ext
25
26
  FileUtils.mkdir_p @dest_path
26
27
  end
27
28
 
28
29
  def test_self_build
29
- File.open File.join(@ext, 'CMakeLists.txt'), 'w' do |cmakelists|
30
+ File.open File.join(@ext, "CMakeLists.txt"), "w" do |cmakelists|
30
31
  cmakelists.write <<-EO_CMAKE
31
32
  cmake_minimum_required(VERSION 2.6)
32
33
  project(self_build NONE)
@@ -34,7 +35,7 @@ install (FILES test.txt DESTINATION bin)
34
35
  EO_CMAKE
35
36
  end
36
37
 
37
- FileUtils.touch File.join(@ext, 'test.txt')
38
+ FileUtils.touch File.join(@ext, "test.txt")
38
39
 
39
40
  output = []
40
41
 
@@ -44,8 +45,8 @@ install (FILES test.txt DESTINATION bin)
44
45
 
45
46
  assert_match %r{^cmake \. -DCMAKE_INSTALL_PREFIX\\=#{Regexp.escape @dest_path}}, output
46
47
  assert_match %r{#{Regexp.escape @ext}}, output
47
- assert_contains_make_command '', output
48
- assert_contains_make_command 'install', output
48
+ assert_contains_make_command "", output
49
+ assert_contains_make_command "install", output
49
50
  assert_match %r{test\.txt}, output
50
51
  end
51
52
 
@@ -60,14 +61,14 @@ install (FILES test.txt DESTINATION bin)
60
61
 
61
62
  shell_error_msg = %r{(CMake Error: .*)}
62
63
 
63
- assert_match 'cmake failed', error.message
64
+ assert_match "cmake failed", error.message
64
65
 
65
66
  assert_match %r{^cmake . -DCMAKE_INSTALL_PREFIX\\=#{Regexp.escape @dest_path}}, output
66
67
  assert_match %r{#{shell_error_msg}}, output
67
68
  end
68
69
 
69
70
  def test_self_build_has_makefile
70
- File.open File.join(@ext, 'Makefile'), 'w' do |makefile|
71
+ File.open File.join(@ext, "Makefile"), "w" do |makefile|
71
72
  makefile.puts "all:\n\t@echo ok\ninstall:\n\t@echo ok"
72
73
  end
73
74
 
@@ -77,7 +78,7 @@ install (FILES test.txt DESTINATION bin)
77
78
 
78
79
  output = output.join "\n"
79
80
 
80
- assert_contains_make_command '', output
81
- assert_contains_make_command 'install', output
81
+ assert_contains_make_command "", output
82
+ assert_contains_make_command "install", output
82
83
  end
83
84
  end
@@ -1,6 +1,7 @@
1
1
  # frozen_string_literal: true
2
- require_relative 'helper'
3
- require 'rubygems/ext'
2
+
3
+ require_relative "helper"
4
+ require "rubygems/ext"
4
5
 
5
6
  class TestGemExtConfigureBuilder < Gem::TestCase
6
7
  def setup
@@ -9,8 +10,8 @@ class TestGemExtConfigureBuilder < Gem::TestCase
9
10
  @makefile_body =
10
11
  "clean:\n\t@echo ok\nall:\n\t@echo ok\ninstall:\n\t@echo ok"
11
12
 
12
- @ext = File.join @tempdir, 'ext'
13
- @dest_path = File.join @tempdir, 'prefix'
13
+ @ext = File.join @tempdir, "ext"
14
+ @dest_path = File.join @tempdir, "prefix"
14
15
 
15
16
  FileUtils.mkdir_p @ext
16
17
  FileUtils.mkdir_p @dest_path
@@ -19,7 +20,7 @@ class TestGemExtConfigureBuilder < Gem::TestCase
19
20
  def test_self_build
20
21
  pend("test_self_build skipped on MS Windows (VC++)") if vc_windows?
21
22
 
22
- File.open File.join(@ext, './configure'), 'w' do |configure|
23
+ File.open File.join(@ext, "./configure"), "w" do |configure|
23
24
  configure.puts "#!/bin/sh\necho \"#{@makefile_body}\" > Makefile"
24
25
  end
25
26
 
@@ -31,13 +32,13 @@ class TestGemExtConfigureBuilder < Gem::TestCase
31
32
  assert_equal "sh ./configure --prefix\\=#{@dest_path}", output.shift
32
33
  assert_equal "", output.shift
33
34
  assert_match(/^current directory:/, output.shift)
34
- assert_contains_make_command 'clean', output.shift
35
+ assert_contains_make_command "clean", output.shift
35
36
  assert_match(/^ok$/m, output.shift)
36
37
  assert_match(/^current directory:/, output.shift)
37
- assert_contains_make_command '', output.shift
38
+ assert_contains_make_command "", output.shift
38
39
  assert_match(/^ok$/m, output.shift)
39
40
  assert_match(/^current directory:/, output.shift)
40
- assert_contains_make_command 'install', output.shift
41
+ assert_contains_make_command "install", output.shift
41
42
  assert_match(/^ok$/m, output.shift)
42
43
  end
43
44
 
@@ -52,7 +53,7 @@ class TestGemExtConfigureBuilder < Gem::TestCase
52
53
  shell_error_msg = %r{(\./configure: .*)|((?:[Cc]an't|cannot) open '?\./configure'?(?:: No such file or directory)?)}
53
54
  sh_prefix_configure = "sh ./configure --prefix\\="
54
55
 
55
- assert_match 'configure failed', error.message
56
+ assert_match "configure failed", error.message
56
57
 
57
58
  assert_match(/^current directory:/, output.shift)
58
59
  assert_equal "#{sh_prefix_configure}#{@dest_path}", output.shift
@@ -65,15 +66,15 @@ class TestGemExtConfigureBuilder < Gem::TestCase
65
66
  pend("test_self_build_has_makefile skipped - nmake not found")
66
67
  end
67
68
 
68
- File.open File.join(@ext, 'Makefile'), 'w' do |makefile|
69
+ File.open File.join(@ext, "Makefile"), "w" do |makefile|
69
70
  makefile.puts @makefile_body
70
71
  end
71
72
 
72
73
  output = []
73
74
  Gem::Ext::ConfigureBuilder.build nil, @dest_path, output, [], nil, @ext
74
75
 
75
- assert_contains_make_command 'clean', output[1]
76
- assert_contains_make_command '', output[4]
77
- assert_contains_make_command 'install', output[7]
76
+ assert_contains_make_command "clean", output[1]
77
+ assert_contains_make_command "", output[4]
78
+ assert_contains_make_command "install", output[7]
78
79
  end
79
80
  end
@@ -1,14 +1,14 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require_relative 'helper'
4
- require 'rubygems/ext'
3
+ require_relative "helper"
4
+ require "rubygems/ext"
5
5
 
6
6
  class TestGemExtExtConfBuilder < Gem::TestCase
7
7
  def setup
8
8
  super
9
9
 
10
- @ext = File.join @tempdir, 'ext'
11
- @dest_path = File.join @tempdir, 'prefix'
10
+ @ext = File.join @tempdir, "ext"
11
+ @dest_path = File.join @tempdir, "prefix"
12
12
 
13
13
  FileUtils.mkdir_p @ext
14
14
  FileUtils.mkdir_p @dest_path
@@ -23,13 +23,13 @@ class TestGemExtExtConfBuilder < Gem::TestCase
23
23
  pend("test_class_build skipped - nmake not found")
24
24
  end
25
25
 
26
- File.open File.join(@ext, 'extconf.rb'), 'w' do |extconf|
26
+ File.open File.join(@ext, "extconf.rb"), "w" do |extconf|
27
27
  extconf.puts "require 'mkmf'\ncreate_makefile 'foo'"
28
28
  end
29
29
 
30
30
  output = []
31
31
 
32
- result = Gem::Ext::ExtConfBuilder.build 'extconf.rb', @dest_path, output, [], nil, @ext
32
+ result = Gem::Ext::ExtConfBuilder.build "extconf.rb", @dest_path, output, [], nil, @ext
33
33
 
34
34
  assert_same result, output
35
35
 
@@ -37,11 +37,11 @@ class TestGemExtExtConfBuilder < Gem::TestCase
37
37
  assert_match(/^#{Gem.ruby}.* extconf.rb/, output[1])
38
38
  assert_equal "creating Makefile\n", output[2]
39
39
  assert_match(/^current directory:/, output[3])
40
- assert_contains_make_command 'clean', output[4]
41
- assert_contains_make_command '', output[7]
42
- assert_contains_make_command 'install', output[10]
43
- assert_empty Dir.glob(File.join(@ext, 'siteconf*.rb'))
44
- assert_empty Dir.glob(File.join(@ext, '.gem.*'))
40
+ assert_contains_make_command "clean", output[4]
41
+ assert_contains_make_command "", output[7]
42
+ assert_contains_make_command "install", output[10]
43
+ assert_empty Dir.glob(File.join(@ext, "siteconf*.rb"))
44
+ assert_empty Dir.glob(File.join(@ext, ".gem.*"))
45
45
  end
46
46
 
47
47
  def test_class_build_rbconfig_make_prog
@@ -50,50 +50,49 @@ class TestGemExtExtConfBuilder < Gem::TestCase
50
50
  end
51
51
 
52
52
  configure_args do
53
-
54
- File.open File.join(@ext, 'extconf.rb'), 'w' do |extconf|
53
+ File.open File.join(@ext, "extconf.rb"), "w" do |extconf|
55
54
  extconf.puts "require 'mkmf'\ncreate_makefile 'foo'"
56
55
  end
57
56
 
58
57
  output = []
59
58
 
60
- Gem::Ext::ExtConfBuilder.build 'extconf.rb', @dest_path, output, [], nil, @ext
59
+ Gem::Ext::ExtConfBuilder.build "extconf.rb", @dest_path, output, [], nil, @ext
61
60
 
62
61
  assert_equal "creating Makefile\n", output[2]
63
- assert_contains_make_command 'clean', output[4]
64
- assert_contains_make_command '', output[7]
65
- assert_contains_make_command 'install', output[10]
62
+ assert_contains_make_command "clean", output[4]
63
+ assert_contains_make_command "", output[7]
64
+ assert_contains_make_command "install", output[10]
66
65
  end
67
66
  end
68
67
 
69
68
  def test_class_build_env_MAKE
70
- env_make = ENV.delete 'make'
71
- ENV['make'] = nil
69
+ env_make = ENV.delete "make"
70
+ ENV["make"] = nil
72
71
 
73
- env_MAKE = ENV.delete 'MAKE'
74
- ENV['MAKE'] = 'anothermake'
72
+ env_MAKE = ENV.delete "MAKE"
73
+ ENV["MAKE"] = "anothermake"
75
74
 
76
75
  if java_platform?
77
76
  pend("failing on jruby")
78
77
  end
79
78
 
80
- configure_args '' do
81
- File.open File.join(@ext, 'extconf.rb'), 'w' do |extconf|
79
+ configure_args "" do
80
+ File.open File.join(@ext, "extconf.rb"), "w" do |extconf|
82
81
  extconf.puts "require 'mkmf'\ncreate_makefile 'foo'"
83
82
  end
84
83
 
85
84
  output = []
86
85
 
87
86
  assert_raise Gem::InstallError do
88
- Gem::Ext::ExtConfBuilder.build 'extconf.rb', @dest_path, output, [], nil, @ext
87
+ Gem::Ext::ExtConfBuilder.build "extconf.rb", @dest_path, output, [], nil, @ext
89
88
  end
90
89
 
91
90
  assert_equal "creating Makefile\n", output[2]
92
- assert_contains_make_command 'clean', output[4]
91
+ assert_contains_make_command "clean", output[4]
93
92
  end
94
93
  ensure
95
- ENV['MAKE'] = env_MAKE
96
- ENV['make'] = env_make
94
+ ENV["MAKE"] = env_MAKE
95
+ ENV["make"] = env_make
97
96
  end
98
97
 
99
98
  def test_class_build_extconf_fail
@@ -101,7 +100,7 @@ class TestGemExtExtConfBuilder < Gem::TestCase
101
100
  pend("test_class_build_extconf_fail skipped - nmake not found")
102
101
  end
103
102
 
104
- File.open File.join(@ext, 'extconf.rb'), 'w' do |extconf|
103
+ File.open File.join(@ext, "extconf.rb"), "w" do |extconf|
105
104
  extconf.puts "require 'mkmf'"
106
105
  extconf.puts "have_library 'nonexistent' or abort 'need libnonexistent'"
107
106
  extconf.puts "create_makefile 'foo'"
@@ -110,16 +109,16 @@ class TestGemExtExtConfBuilder < Gem::TestCase
110
109
  output = []
111
110
 
112
111
  error = assert_raise Gem::InstallError do
113
- Gem::Ext::ExtConfBuilder.build 'extconf.rb', @dest_path, output, [], nil, @ext
112
+ Gem::Ext::ExtConfBuilder.build "extconf.rb", @dest_path, output, [], nil, @ext
114
113
  end
115
114
 
116
- assert_equal 'extconf failed, exit code 1', error.message
115
+ assert_equal "extconf failed, exit code 1", error.message
117
116
 
118
117
  assert_match(/^#{Gem.ruby}.* extconf.rb/, output[1])
119
- assert_match(File.join(@dest_path, 'mkmf.log'), output[4])
118
+ assert_match(File.join(@dest_path, "mkmf.log"), output[4])
120
119
  assert_includes(output, "To see why this extension failed to compile, please check the mkmf.log which can be found here:\n")
121
120
 
122
- assert_path_exist File.join @dest_path, 'mkmf.log'
121
+ assert_path_exist File.join @dest_path, "mkmf.log"
123
122
  end
124
123
 
125
124
  def test_class_build_extconf_success_without_warning
@@ -127,7 +126,7 @@ class TestGemExtExtConfBuilder < Gem::TestCase
127
126
  pend("test_class_build_extconf_fail skipped - nmake not found")
128
127
  end
129
128
 
130
- File.open File.join(@ext, 'extconf.rb'), 'w' do |extconf|
129
+ File.open File.join(@ext, "extconf.rb"), "w" do |extconf|
131
130
  extconf.puts "require 'mkmf'"
132
131
  extconf.puts "File.open('mkmf.log', 'w'){|f| f.write('a')}"
133
132
  extconf.puts "create_makefile 'foo'"
@@ -135,11 +134,11 @@ class TestGemExtExtConfBuilder < Gem::TestCase
135
134
 
136
135
  output = []
137
136
 
138
- Gem::Ext::ExtConfBuilder.build 'extconf.rb', @dest_path, output, [], nil, @ext
137
+ Gem::Ext::ExtConfBuilder.build "extconf.rb", @dest_path, output, [], nil, @ext
139
138
 
140
139
  refute_includes(output, "To see why this extension failed to compile, please check the mkmf.log which can be found here:\n")
141
140
 
142
- assert_path_exist File.join @dest_path, 'mkmf.log'
141
+ assert_path_exist File.join @dest_path, "mkmf.log"
143
142
  end
144
143
 
145
144
  def test_class_build_unconventional
@@ -147,7 +146,7 @@ class TestGemExtExtConfBuilder < Gem::TestCase
147
146
  pend("test_class_build skipped - nmake not found")
148
147
  end
149
148
 
150
- File.open File.join(@ext, 'extconf.rb'), 'w' do |extconf|
149
+ File.open File.join(@ext, "extconf.rb"), "w" do |extconf|
151
150
  extconf.puts <<-'EXTCONF'
152
151
  include RbConfig
153
152
 
@@ -175,12 +174,12 @@ end
175
174
 
176
175
  output = []
177
176
 
178
- Gem::Ext::ExtConfBuilder.build 'extconf.rb', @dest_path, output, [], nil, @ext
177
+ Gem::Ext::ExtConfBuilder.build "extconf.rb", @dest_path, output, [], nil, @ext
179
178
 
180
- assert_contains_make_command 'clean', output[4]
181
- assert_contains_make_command '', output[7]
182
- assert_contains_make_command 'install', output[10]
183
- assert_empty Dir.glob(File.join(@ext, 'siteconf*.rb'))
179
+ assert_contains_make_command "clean", output[4]
180
+ assert_contains_make_command "", output[7]
181
+ assert_contains_make_command "install", output[10]
182
+ assert_empty Dir.glob(File.join(@ext, "siteconf*.rb"))
184
183
  end
185
184
 
186
185
  def test_class_make
@@ -189,8 +188,8 @@ end
189
188
  end
190
189
 
191
190
  output = []
192
- makefile_path = File.join(@ext, 'Makefile')
193
- File.open makefile_path, 'w' do |makefile|
191
+ makefile_path = File.join(@ext, "Makefile")
192
+ File.open makefile_path, "w" do |makefile|
194
193
  makefile.puts "# π"
195
194
  makefile.puts "RUBYARCHDIR = $(foo)$(target_prefix)"
196
195
  makefile.puts "RUBYLIBDIR = $(bar)$(target_prefix)"
@@ -201,30 +200,30 @@ end
201
200
 
202
201
  Gem::Ext::ExtConfBuilder.make @ext, output, @ext
203
202
 
204
- assert_contains_make_command 'clean', output[1]
205
- assert_contains_make_command '', output[4]
206
- assert_contains_make_command 'install', output[7]
203
+ assert_contains_make_command "clean", output[1]
204
+ assert_contains_make_command "", output[4]
205
+ assert_contains_make_command "install", output[7]
207
206
  end
208
207
 
209
208
  def test_class_make_no_Makefile
210
209
  error = assert_raise Gem::InstallError do
211
- Gem::Ext::ExtConfBuilder.make @ext, ['output'], @ext
210
+ Gem::Ext::ExtConfBuilder.make @ext, ["output"], @ext
212
211
  end
213
212
 
214
- assert_equal 'Makefile not found', error.message
213
+ assert_equal "Makefile not found", error.message
215
214
  end
216
215
 
217
216
  def configure_args(args = nil)
218
- configure_args = RbConfig::CONFIG['configure_args']
219
- RbConfig::CONFIG['configure_args'] = args if args
217
+ configure_args = RbConfig::CONFIG["configure_args"]
218
+ RbConfig::CONFIG["configure_args"] = args if args
220
219
 
221
220
  yield
222
221
 
223
222
  ensure
224
223
  if configure_args
225
- RbConfig::CONFIG['configure_args'] = configure_args
224
+ RbConfig::CONFIG["configure_args"] = configure_args
226
225
  else
227
- RbConfig::CONFIG.delete 'configure_args'
226
+ RbConfig::CONFIG.delete "configure_args"
228
227
  end
229
228
  end
230
229
  end
@@ -1,24 +1,25 @@
1
1
  # frozen_string_literal: true
2
- require_relative 'helper'
3
- require 'rubygems/ext'
2
+
3
+ require_relative "helper"
4
+ require "rubygems/ext"
4
5
 
5
6
  class TestGemExtRakeBuilder < Gem::TestCase
6
7
  def setup
7
8
  super
8
9
 
9
- @ext = File.join @tempdir, 'ext'
10
- @dest_path = File.join @tempdir, 'prefix'
10
+ @ext = File.join @tempdir, "ext"
11
+ @dest_path = File.join @tempdir, "prefix"
11
12
 
12
13
  FileUtils.mkdir_p @ext
13
14
  FileUtils.mkdir_p @dest_path
14
15
  end
15
16
 
16
17
  def test_class_build
17
- create_temp_mkrf_file('task :default')
18
+ create_temp_mkrf_file("task :default")
18
19
  output = []
19
20
 
20
21
  build_rake_in do |rake|
21
- Gem::Ext::RakeBuilder.build 'mkrf_conf.rb', @dest_path, output, [], nil, @ext
22
+ Gem::Ext::RakeBuilder.build "mkrf_conf.rb", @dest_path, output, [], nil, @ext
22
23
 
23
24
  output = output.join "\n"
24
25
 
@@ -32,12 +33,12 @@ class TestGemExtRakeBuilder < Gem::TestCase
32
33
  #
33
34
  # It should not fail with a non-empty args list either
34
35
  def test_class_build_with_args
35
- create_temp_mkrf_file('task :default')
36
+ create_temp_mkrf_file("task :default")
36
37
  output = []
37
38
 
38
39
  build_rake_in do |rake|
39
- non_empty_args_list = ['']
40
- Gem::Ext::RakeBuilder.build 'mkrf_conf.rb', @dest_path, output, non_empty_args_list, nil, @ext
40
+ non_empty_args_list = [""]
41
+ Gem::Ext::RakeBuilder.build "mkrf_conf.rb", @dest_path, output, non_empty_args_list, nil, @ext
41
42
 
42
43
  output = output.join "\n"
43
44
 
@@ -48,25 +49,25 @@ class TestGemExtRakeBuilder < Gem::TestCase
48
49
  end
49
50
 
50
51
  def test_class_no_openssl_override
51
- pend 'openssl is missing' unless Gem::HAVE_OPENSSL
52
+ pend "openssl is missing" unless Gem::HAVE_OPENSSL
52
53
 
53
- create_temp_mkrf_file('task :default')
54
+ create_temp_mkrf_file("task :default")
54
55
 
55
- rake = util_spec 'rake' do |s|
56
+ rake = util_spec "rake" do |s|
56
57
  s.executables = %w[rake]
57
58
  s.files = %w[bin/rake]
58
59
  end
59
60
 
60
61
  output = []
61
62
 
62
- write_file File.join(@tempdir, 'bin', 'rake') do |fp|
63
+ write_file File.join(@tempdir, "bin", "rake") do |fp|
63
64
  fp.puts "#!/usr/bin/ruby"
64
65
  fp.puts "require 'openssl'; puts OpenSSL"
65
66
  end
66
67
 
67
68
  install_gem rake
68
69
 
69
- Gem::Ext::RakeBuilder.build 'mkrf_conf.rb', @dest_path, output, [''], nil, @ext
70
+ Gem::Ext::RakeBuilder.build "mkrf_conf.rb", @dest_path, output, [""], nil, @ext
70
71
 
71
72
  output = output.join "\n"
72
73
 
@@ -101,7 +102,7 @@ class TestGemExtRakeBuilder < Gem::TestCase
101
102
  end
102
103
 
103
104
  def create_temp_mkrf_file(rakefile_content)
104
- File.open File.join(@ext, 'mkrf_conf.rb'), 'w' do |mkrf_conf|
105
+ File.open File.join(@ext, "mkrf_conf.rb"), "w" do |mkrf_conf|
105
106
  mkrf_conf.puts <<-EO_MKRF
106
107
  File.open("Rakefile","w") do |f|
107
108
  f.puts "#{rakefile_content}"
@@ -1,20 +1,26 @@
1
1
  # frozen_string_literal: true
2
- require_relative 'helper'
2
+
3
+ require_relative "helper"
3
4
 
4
5
  class TestGemGemRunner < Gem::TestCase
5
6
  def setup
6
- super
7
-
8
- require 'rubygems/command'
7
+ require "rubygems/command"
9
8
  @orig_args = Gem::Command.build_args
10
9
  @orig_specific_extra_args = Gem::Command.specific_extra_args_hash.dup
11
10
  @orig_extra_args = Gem::Command.extra_args.dup
12
11
 
13
- require 'rubygems/gem_runner'
12
+ super
13
+
14
+ @orig_gem_home = ENV["GEM_HOME"]
15
+ ENV["GEM_HOME"] = @gemhome
16
+
17
+ require "rubygems/gem_runner"
14
18
  @runner = Gem::GemRunner.new
15
19
  end
16
20
 
17
21
  def teardown
22
+ ENV["GEM_HOME"] = @orig_gem_home
23
+
18
24
  super
19
25
 
20
26
  Gem::Command.build_args = @orig_args
@@ -25,15 +31,15 @@ class TestGemGemRunner < Gem::TestCase
25
31
  def test_do_configuration
26
32
  Gem.clear_paths
27
33
 
28
- temp_conf = File.join @tempdir, '.gemrc'
34
+ temp_conf = File.join @tempdir, ".gemrc"
29
35
 
30
- other_gem_path = File.join @tempdir, 'other_gem_path'
31
- other_gem_home = File.join @tempdir, 'other_gem_home'
36
+ other_gem_path = File.join @tempdir, "other_gem_path"
37
+ other_gem_home = File.join @tempdir, "other_gem_home"
32
38
 
33
39
  Gem.ensure_gem_subdirectories other_gem_path
34
40
  Gem.ensure_gem_subdirectories other_gem_home
35
41
 
36
- File.open temp_conf, 'w' do |fp|
42
+ File.open temp_conf, "w" do |fp|
37
43
  fp.puts "gem: --commands"
38
44
  fp.puts "gemhome: #{other_gem_home}"
39
45
  fp.puts "gempath:"