rubygems-update 3.3.26 → 3.4.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 (272) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +35 -0
  3. data/CONTRIBUTING.md +24 -1
  4. data/Manifest.txt +30 -27
  5. data/POLICIES.md +10 -8
  6. data/README.md +2 -2
  7. data/bin/gem +1 -4
  8. data/bin/update_rubygems +1 -1
  9. data/bundler/CHANGELOG.md +59 -0
  10. data/bundler/README.md +2 -2
  11. data/bundler/bundler.gemspec +2 -2
  12. data/bundler/exe/bundle +1 -4
  13. data/bundler/lib/bundler/build_metadata.rb +2 -2
  14. data/bundler/lib/bundler/cli/add.rb +1 -1
  15. data/bundler/lib/bundler/cli/check.rb +1 -1
  16. data/bundler/lib/bundler/cli/common.rb +1 -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/install.rb +2 -3
  21. data/bundler/lib/bundler/cli/lock.rb +8 -5
  22. data/bundler/lib/bundler/cli/outdated.rb +1 -3
  23. data/bundler/lib/bundler/cli/viz.rb +1 -1
  24. data/bundler/lib/bundler/cli.rb +43 -2
  25. data/bundler/lib/bundler/compact_index_client/cache.rb +1 -1
  26. data/bundler/lib/bundler/compact_index_client/updater.rb +40 -39
  27. data/bundler/lib/bundler/constants.rb +1 -1
  28. data/bundler/lib/bundler/definition.rb +61 -31
  29. data/bundler/lib/bundler/dependency.rb +12 -11
  30. data/bundler/lib/bundler/digest.rb +1 -1
  31. data/bundler/lib/bundler/dsl.rb +1 -1
  32. data/bundler/lib/bundler/env.rb +1 -1
  33. data/bundler/lib/bundler/environment_preserver.rb +1 -0
  34. data/bundler/lib/bundler/errors.rb +1 -11
  35. data/bundler/lib/bundler/fetcher/compact_index.rb +9 -11
  36. data/bundler/lib/bundler/fetcher/dependency.rb +1 -1
  37. data/bundler/lib/bundler/fetcher/downloader.rb +2 -5
  38. data/bundler/lib/bundler/fetcher.rb +2 -6
  39. data/bundler/lib/bundler/force_platform.rb +18 -0
  40. data/bundler/lib/bundler/friendly_errors.rb +0 -3
  41. data/bundler/lib/bundler/gem_version_promoter.rb +52 -86
  42. data/bundler/lib/bundler/graph.rb +3 -3
  43. data/bundler/lib/bundler/index.rb +5 -13
  44. data/bundler/lib/bundler/injector.rb +1 -1
  45. data/bundler/lib/bundler/inline.rb +2 -2
  46. data/bundler/lib/bundler/installer/parallel_installer.rb +0 -31
  47. data/bundler/lib/bundler/installer.rb +6 -16
  48. data/bundler/lib/bundler/lazy_specification.rb +5 -1
  49. data/bundler/lib/bundler/lockfile_parser.rb +5 -5
  50. data/bundler/lib/bundler/man/bundle-add.1 +1 -1
  51. data/bundler/lib/bundler/man/bundle-binstubs.1 +1 -1
  52. data/bundler/lib/bundler/man/bundle-cache.1 +1 -1
  53. data/bundler/lib/bundler/man/bundle-check.1 +1 -1
  54. data/bundler/lib/bundler/man/bundle-clean.1 +1 -1
  55. data/bundler/lib/bundler/man/bundle-config.1 +1 -1
  56. data/bundler/lib/bundler/man/bundle-console.1 +1 -1
  57. data/bundler/lib/bundler/man/bundle-doctor.1 +1 -1
  58. data/bundler/lib/bundler/man/bundle-exec.1 +1 -1
  59. data/bundler/lib/bundler/man/bundle-gem.1 +27 -37
  60. data/bundler/lib/bundler/man/bundle-gem.1.ronn +5 -5
  61. data/bundler/lib/bundler/man/bundle-help.1 +1 -1
  62. data/bundler/lib/bundler/man/bundle-info.1 +1 -1
  63. data/bundler/lib/bundler/man/bundle-init.1 +1 -1
  64. data/bundler/lib/bundler/man/bundle-inject.1 +1 -1
  65. data/bundler/lib/bundler/man/bundle-install.1 +1 -30
  66. data/bundler/lib/bundler/man/bundle-install.1.ronn +0 -29
  67. data/bundler/lib/bundler/man/bundle-list.1 +1 -1
  68. data/bundler/lib/bundler/man/bundle-lock.1 +1 -1
  69. data/bundler/lib/bundler/man/bundle-open.1 +1 -1
  70. data/bundler/lib/bundler/man/bundle-outdated.1 +1 -1
  71. data/bundler/lib/bundler/man/bundle-platform.1 +2 -2
  72. data/bundler/lib/bundler/man/bundle-platform.1.ronn +1 -1
  73. data/bundler/lib/bundler/man/bundle-plugin.1 +1 -1
  74. data/bundler/lib/bundler/man/bundle-pristine.1 +1 -1
  75. data/bundler/lib/bundler/man/bundle-remove.1 +1 -1
  76. data/bundler/lib/bundler/man/bundle-show.1 +1 -1
  77. data/bundler/lib/bundler/man/bundle-update.1 +1 -1
  78. data/bundler/lib/bundler/man/bundle-version.1 +1 -1
  79. data/bundler/lib/bundler/man/bundle-viz.1 +1 -1
  80. data/bundler/lib/bundler/man/bundle.1 +1 -1
  81. data/bundler/lib/bundler/man/gemfile.5 +1 -1
  82. data/bundler/lib/bundler/mirror.rb +5 -7
  83. data/bundler/lib/bundler/plugin/index.rb +4 -4
  84. data/bundler/lib/bundler/plugin/installer/rubygems.rb +0 -4
  85. data/bundler/lib/bundler/resolver/base.rb +7 -11
  86. data/bundler/lib/bundler/resolver/candidate.rb +92 -0
  87. data/bundler/lib/bundler/resolver/incompatibility.rb +15 -0
  88. data/bundler/lib/bundler/resolver/package.rb +63 -0
  89. data/bundler/lib/bundler/resolver/root.rb +25 -0
  90. data/bundler/lib/bundler/resolver/spec_group.rb +26 -36
  91. data/bundler/lib/bundler/resolver.rb +294 -277
  92. data/bundler/lib/bundler/rubygems_ext.rb +11 -6
  93. data/bundler/lib/bundler/rubygems_gem_installer.rb +4 -2
  94. data/bundler/lib/bundler/rubygems_integration.rb +1 -9
  95. data/bundler/lib/bundler/runtime.rb +1 -5
  96. data/bundler/lib/bundler/settings.rb +0 -6
  97. data/bundler/lib/bundler/shared_helpers.rb +1 -0
  98. data/bundler/lib/bundler/source/git/git_proxy.rb +193 -67
  99. data/bundler/lib/bundler/source/git.rb +15 -17
  100. data/bundler/lib/bundler/source/metadata.rb +0 -1
  101. data/bundler/lib/bundler/source/path/installer.rb +1 -22
  102. data/bundler/lib/bundler/source/path.rb +5 -5
  103. data/bundler/lib/bundler/source/rubygems.rb +13 -67
  104. data/bundler/lib/bundler/source_list.rb +8 -2
  105. data/bundler/lib/bundler/spec_set.rb +7 -9
  106. data/bundler/lib/bundler/templates/Executable +1 -1
  107. data/bundler/lib/bundler/templates/Executable.bundler +4 -9
  108. data/bundler/lib/bundler/templates/Executable.standalone +2 -0
  109. data/bundler/lib/bundler/templates/newgem/Cargo.toml.tt +7 -0
  110. data/bundler/lib/bundler/templates/newgem/Gemfile.tt +3 -0
  111. data/bundler/lib/bundler/templates/newgem/README.md.tt +6 -4
  112. data/bundler/lib/bundler/templates/newgem/Rakefile.tt +2 -1
  113. data/bundler/lib/bundler/templates/newgem/circleci/config.yml.tt +12 -0
  114. data/bundler/lib/bundler/templates/newgem/ext/newgem/Cargo.toml.tt +15 -0
  115. data/bundler/lib/bundler/templates/newgem/ext/newgem/{extconf.rb.tt → extconf-c.rb.tt} +0 -0
  116. data/bundler/lib/bundler/templates/newgem/ext/newgem/extconf-rust.rb.tt +6 -0
  117. data/bundler/lib/bundler/templates/newgem/ext/newgem/src/lib.rs.tt +12 -0
  118. data/bundler/lib/bundler/templates/newgem/github/workflows/main.yml.tt +10 -0
  119. data/bundler/lib/bundler/templates/newgem/gitignore.tt +3 -0
  120. data/bundler/lib/bundler/templates/newgem/gitlab-ci.yml.tt +8 -0
  121. data/bundler/lib/bundler/templates/newgem/newgem.gemspec.tt +8 -2
  122. data/bundler/lib/bundler/ui/shell.rb +35 -12
  123. data/bundler/lib/bundler/ui/silent.rb +21 -5
  124. data/bundler/lib/bundler/vendor/connection_pool/lib/connection_pool/timed_stack.rb +3 -3
  125. data/bundler/lib/bundler/vendor/connection_pool/lib/connection_pool/wrapper.rb +0 -1
  126. data/bundler/lib/bundler/vendor/connection_pool/lib/connection_pool.rb +3 -1
  127. data/bundler/lib/bundler/vendor/fileutils/lib/fileutils.rb +1350 -408
  128. data/bundler/lib/bundler/vendor/net-http-persistent/README.rdoc +1 -1
  129. data/bundler/lib/bundler/vendor/net-http-persistent/lib/net/http/persistent.rb +1 -1
  130. data/bundler/lib/bundler/vendor/pub_grub/LICENSE.txt +21 -0
  131. data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/assignment.rb +20 -0
  132. data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/basic_package_source.rb +189 -0
  133. data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/failure_writer.rb +182 -0
  134. data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/incompatibility.rb +151 -0
  135. data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/package.rb +43 -0
  136. data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/partial_solution.rb +121 -0
  137. data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/rubygems.rb +45 -0
  138. data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/solve_failure.rb +19 -0
  139. data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/static_package_source.rb +53 -0
  140. data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/term.rb +105 -0
  141. data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/version.rb +3 -0
  142. data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/version_constraint.rb +124 -0
  143. data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/version_range.rb +409 -0
  144. data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/version_solver.rb +240 -0
  145. data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/version_union.rb +178 -0
  146. data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub.rb +31 -0
  147. data/bundler/lib/bundler/vendor/thor/lib/thor/shell/basic.rb +1 -1
  148. data/bundler/lib/bundler/vendor/uri/lib/uri/common.rb +64 -16
  149. data/bundler/lib/bundler/vendor/uri/lib/uri/file.rb +7 -1
  150. data/bundler/lib/bundler/vendor/uri/lib/uri/ftp.rb +2 -1
  151. data/bundler/lib/bundler/vendor/uri/lib/uri/generic.rb +27 -7
  152. data/bundler/lib/bundler/vendor/uri/lib/uri/http.rb +40 -2
  153. data/bundler/lib/bundler/vendor/uri/lib/uri/https.rb +2 -1
  154. data/bundler/lib/bundler/vendor/uri/lib/uri/ldap.rb +1 -1
  155. data/bundler/lib/bundler/vendor/uri/lib/uri/ldaps.rb +2 -1
  156. data/bundler/lib/bundler/vendor/uri/lib/uri/mailto.rb +2 -2
  157. data/bundler/lib/bundler/vendor/uri/lib/uri/rfc2396_parser.rb +13 -7
  158. data/bundler/lib/bundler/vendor/uri/lib/uri/rfc3986_parser.rb +10 -5
  159. data/bundler/lib/bundler/vendor/uri/lib/uri/version.rb +1 -1
  160. data/bundler/lib/bundler/vendor/uri/lib/uri/ws.rb +1 -2
  161. data/bundler/lib/bundler/vendor/uri/lib/uri/wss.rb +2 -1
  162. data/bundler/lib/bundler/vendor/uri/lib/uri.rb +3 -2
  163. data/bundler/lib/bundler/vendored_persistent.rb +1 -33
  164. data/bundler/lib/bundler/{vendored_tmpdir.rb → vendored_pub_grub.rb} +1 -1
  165. data/bundler/lib/bundler/version.rb +5 -1
  166. data/bundler/lib/bundler/worker.rb +5 -7
  167. data/bundler/lib/bundler.rb +20 -64
  168. data/lib/rubygems/command_manager.rb +2 -2
  169. data/lib/rubygems/commands/fetch_command.rb +1 -1
  170. data/lib/rubygems/commands/install_command.rb +7 -3
  171. data/lib/rubygems/commands/rdoc_command.rb +3 -2
  172. data/lib/rubygems/commands/setup_command.rb +2 -2
  173. data/lib/rubygems/commands/unpack_command.rb +1 -1
  174. data/lib/rubygems/commands/update_command.rb +1 -7
  175. data/lib/rubygems/config_file.rb +33 -0
  176. data/lib/rubygems/core_ext/kernel_warn.rb +1 -2
  177. data/lib/rubygems/defaults.rb +15 -1
  178. data/lib/rubygems/dependency.rb +4 -1
  179. data/lib/rubygems/dependency_installer.rb +24 -24
  180. data/lib/rubygems/exceptions.rb +1 -3
  181. data/lib/rubygems/ext/builder.rb +3 -3
  182. data/lib/rubygems/ext/cargo_builder/link_flag_converter.rb +9 -5
  183. data/lib/rubygems/ext/cargo_builder.rb +15 -20
  184. data/lib/rubygems/ext/ext_conf_builder.rb +2 -0
  185. data/lib/rubygems/indexer.rb +1 -1
  186. data/lib/rubygems/installer.rb +5 -5
  187. data/lib/rubygems/optparse/lib/optparse.rb +20 -15
  188. data/lib/rubygems/package/tar_header.rb +11 -11
  189. data/lib/rubygems/platform.rb +0 -2
  190. data/lib/rubygems/request_set/gem_dependency_api.rb +104 -104
  191. data/lib/rubygems/requirement.rb +7 -7
  192. data/lib/rubygems/resolver/installer_set.rb +1 -1
  193. data/lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph.rb +1 -1
  194. data/lib/rubygems/resolver/molinillo/lib/molinillo/errors.rb +32 -26
  195. data/lib/rubygems/resolver/molinillo/lib/molinillo/gem_metadata.rb +1 -1
  196. data/lib/rubygems/security/policies.rb +40 -40
  197. data/lib/rubygems/security/trust_dir.rb +1 -1
  198. data/lib/rubygems/security.rb +3 -16
  199. data/lib/rubygems/source.rb +2 -2
  200. data/lib/rubygems/specification.rb +37 -49
  201. data/lib/rubygems/specification_policy.rb +14 -0
  202. data/lib/rubygems/stub_specification.rb +2 -2
  203. data/lib/rubygems/text.rb +1 -1
  204. data/lib/rubygems/tsort/lib/tsort.rb +308 -310
  205. data/lib/rubygems/update_suggestion.rb +69 -0
  206. data/lib/rubygems/util.rb +1 -5
  207. data/lib/rubygems/validator.rb +1 -1
  208. data/lib/rubygems.rb +8 -3
  209. data/rubygems-update.gemspec +2 -2
  210. data/test/rubygems/helper.rb +7 -3
  211. data/test/rubygems/test_bundled_ca.rb +1 -1
  212. data/test/rubygems/test_exit.rb +6 -0
  213. data/test/rubygems/test_gem.rb +4 -9
  214. data/test/rubygems/test_gem_bundler_version_finder.rb +2 -1
  215. data/test/rubygems/test_gem_command_manager.rb +1 -1
  216. data/test/rubygems/test_gem_commands_install_command.rb +19 -0
  217. data/test/rubygems/test_gem_commands_setup_command.rb +1 -8
  218. data/test/rubygems/test_gem_commands_update_command.rb +6 -6
  219. data/test/rubygems/test_gem_config_file.rb +1 -1
  220. data/test/rubygems/test_gem_dependency.rb +2 -0
  221. data/test/rubygems/test_gem_ext_builder.rb +3 -3
  222. data/test/rubygems/test_gem_ext_cargo_builder/custom_name/Cargo.lock +22 -32
  223. data/test/rubygems/test_gem_ext_cargo_builder/custom_name/Cargo.toml +1 -1
  224. data/test/rubygems/test_gem_ext_cargo_builder/rust_ruby_example/Cargo.lock +22 -32
  225. data/test/rubygems/test_gem_ext_cargo_builder/rust_ruby_example/Cargo.toml +1 -1
  226. data/test/rubygems/test_gem_ext_cargo_builder/rust_ruby_example/src/lib.rs +12 -0
  227. data/test/rubygems/test_gem_ext_cargo_builder.rb +22 -27
  228. data/test/rubygems/test_gem_ext_cargo_builder_link_flag_converter.rb +16 -16
  229. data/test/rubygems/test_gem_ext_cargo_builder_unit.rb +0 -10
  230. data/test/rubygems/test_gem_indexer.rb +39 -20
  231. data/test/rubygems/test_gem_installer.rb +68 -2
  232. data/test/rubygems/test_gem_package_tar_header.rb +13 -13
  233. data/test/rubygems/test_gem_platform.rb +59 -60
  234. data/test/rubygems/test_gem_remote_fetcher.rb +4 -4
  235. data/test/rubygems/test_gem_request_set.rb +2 -2
  236. data/test/rubygems/test_gem_requirement.rb +1 -1
  237. data/test/rubygems/test_gem_resolver_api_set.rb +12 -12
  238. data/test/rubygems/test_gem_resolver_api_specification.rb +19 -19
  239. data/test/rubygems/test_gem_resolver_git_specification.rb +1 -1
  240. data/test/rubygems/test_gem_security_policy.rb +10 -10
  241. data/test/rubygems/test_gem_security_trust_dir.rb +2 -2
  242. data/test/rubygems/test_gem_specification.rb +50 -37
  243. data/test/rubygems/test_gem_uninstaller.rb +1 -1
  244. data/test/rubygems/test_gem_update_suggestion.rb +208 -0
  245. data/test/rubygems/test_kernel.rb +10 -8
  246. data/test/rubygems/test_require.rb +70 -55
  247. metadata +34 -31
  248. data/bundler/lib/bundler/templates/newgem/travis.yml.tt +0 -6
  249. data/bundler/lib/bundler/vendor/molinillo/LICENSE +0 -9
  250. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/delegates/resolution_state.rb +0 -57
  251. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/delegates/specification_provider.rb +0 -88
  252. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/action.rb +0 -36
  253. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/add_edge_no_circular.rb +0 -66
  254. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/add_vertex.rb +0 -62
  255. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/delete_edge.rb +0 -63
  256. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/detach_vertex_named.rb +0 -61
  257. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/log.rb +0 -126
  258. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/set_payload.rb +0 -46
  259. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/tag.rb +0 -36
  260. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/vertex.rb +0 -164
  261. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph.rb +0 -255
  262. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/errors.rb +0 -149
  263. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/gem_metadata.rb +0 -6
  264. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/modules/specification_provider.rb +0 -112
  265. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/modules/ui.rb +0 -67
  266. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/resolution.rb +0 -839
  267. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/resolver.rb +0 -46
  268. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/state.rb +0 -58
  269. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo.rb +0 -11
  270. data/bundler/lib/bundler/vendor/tmpdir/lib/tmpdir.rb +0 -154
  271. data/bundler/lib/bundler/vendored_molinillo.rb +0 -4
  272. data/bundler/lib/bundler/version_ranges.rb +0 -122
@@ -4,9 +4,9 @@ version = 3
4
4
 
5
5
  [[package]]
6
6
  name = "aho-corasick"
7
- version = "0.7.18"
7
+ version = "0.7.20"
8
8
  source = "registry+https://github.com/rust-lang/crates.io-index"
9
- checksum = "1e37cfd5e7657ada45f742d6e99ca5788580b5c529dc78faf11ece6dc702656f"
9
+ checksum = "cc936419f96fa211c1b9166887b38e5e40b19958e5b895be7c1f93adec7071ac"
10
10
  dependencies = [
11
11
  "memchr",
12
12
  ]
@@ -53,9 +53,9 @@ checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
53
53
 
54
54
  [[package]]
55
55
  name = "clang-sys"
56
- version = "1.3.3"
56
+ version = "1.4.0"
57
57
  source = "registry+https://github.com/rust-lang/crates.io-index"
58
- checksum = "5a050e2153c5be08febd6734e29298e844fdb0fa21aeddd63b4eb7baa106c69b"
58
+ checksum = "fa2e27ae6ab525c3d369ded447057bca5438d86dc3a68f6faafb8269ba82ebf3"
59
59
  dependencies = [
60
60
  "glob",
61
61
  "libc",
@@ -82,29 +82,20 @@ checksum = "830d08ce1d1d941e6b30645f1a0eb5643013d835ce3779a5fc208261dbe10f55"
82
82
 
83
83
  [[package]]
84
84
  name = "libc"
85
- version = "0.2.126"
85
+ version = "0.2.138"
86
86
  source = "registry+https://github.com/rust-lang/crates.io-index"
87
- checksum = "349d5a591cd28b49e1d1037471617a32ddcda5731b99419008085f72d5a53836"
87
+ checksum = "db6d7e329c562c5dfab7a46a2afabc8b987ab9a4834c9d1ca04dc54c1546cef8"
88
88
 
89
89
  [[package]]
90
90
  name = "libloading"
91
- version = "0.7.3"
91
+ version = "0.7.4"
92
92
  source = "registry+https://github.com/rust-lang/crates.io-index"
93
- checksum = "efbc0f03f9a775e9f6aed295c6a1ba2253c5757a9e03d55c6caa46a681abcddd"
93
+ checksum = "b67380fd3b2fbe7527a606e18729d21c6f3951633d0500574c4dc22d2d638b9f"
94
94
  dependencies = [
95
95
  "cfg-if",
96
96
  "winapi",
97
97
  ]
98
98
 
99
- [[package]]
100
- name = "linkify"
101
- version = "0.9.0"
102
- source = "registry+https://github.com/rust-lang/crates.io-index"
103
- checksum = "96dd5884008358112bc66093362197c7248ece00d46624e2cf71e50029f8cff5"
104
- dependencies = [
105
- "memchr",
106
- ]
107
-
108
99
  [[package]]
109
100
  name = "memchr"
110
101
  version = "2.5.0"
@@ -135,48 +126,47 @@ checksum = "19b17cddbe7ec3f8bc800887bab5e717348c95ea2ca0b1bf0837fb964dc67099"
135
126
 
136
127
  [[package]]
137
128
  name = "proc-macro2"
138
- version = "1.0.40"
129
+ version = "1.0.47"
139
130
  source = "registry+https://github.com/rust-lang/crates.io-index"
140
- checksum = "dd96a1e8ed2596c337f8eae5f24924ec83f5ad5ab21ea8e455d3566c69fbcaf7"
131
+ checksum = "5ea3d908b0e36316caf9e9e2c4625cdde190a7e6f440d794667ed17a1855e725"
141
132
  dependencies = [
142
133
  "unicode-ident",
143
134
  ]
144
135
 
145
136
  [[package]]
146
137
  name = "quote"
147
- version = "1.0.20"
138
+ version = "1.0.21"
148
139
  source = "registry+https://github.com/rust-lang/crates.io-index"
149
- checksum = "3bcdf212e9776fbcb2d23ab029360416bb1706b1aea2d1a5ba002727cbcab804"
140
+ checksum = "bbe448f377a7d6961e30f5955f9b8d106c3f5e449d493ee1b125c1d43c2b5179"
150
141
  dependencies = [
151
142
  "proc-macro2",
152
143
  ]
153
144
 
154
145
  [[package]]
155
146
  name = "rb-sys"
156
- version = "0.9.37"
147
+ version = "0.9.52"
157
148
  source = "registry+https://github.com/rust-lang/crates.io-index"
158
- checksum = "5ba942b6777ea18ded013b267023a9c98994557e6539e43740de9e75084cb124"
149
+ checksum = "02fffdb0162fc4cc1b6509b2d9b32a75f7e7ed392f58bde639e0c33b23e74b97"
159
150
  dependencies = [
160
151
  "rb-sys-build",
161
152
  ]
162
153
 
163
154
  [[package]]
164
155
  name = "rb-sys-build"
165
- version = "0.9.37"
156
+ version = "0.9.52"
166
157
  source = "registry+https://github.com/rust-lang/crates.io-index"
167
- checksum = "d35109e1a11ef8d1a988db242ab2ba2e80170f9f5a28f88ab30184a2cea8e09b"
158
+ checksum = "85d1a236755f879fc155d16d9ba4cd3b1975fd52ef6a28113702ae3881b73c03"
168
159
  dependencies = [
169
160
  "bindgen",
170
- "linkify",
171
161
  "regex",
172
162
  "shell-words",
173
163
  ]
174
164
 
175
165
  [[package]]
176
166
  name = "regex"
177
- version = "1.5.6"
167
+ version = "1.7.0"
178
168
  source = "registry+https://github.com/rust-lang/crates.io-index"
179
- checksum = "d83f127d94bdbcda4c8cc2e50f6f84f4b611f69c902699ca385a39c3a75f9ff1"
169
+ checksum = "e076559ef8e241f2ae3479e36f97bd5741c0330689e217ad51ce2c76808b868a"
180
170
  dependencies = [
181
171
  "aho-corasick",
182
172
  "memchr",
@@ -185,9 +175,9 @@ dependencies = [
185
175
 
186
176
  [[package]]
187
177
  name = "regex-syntax"
188
- version = "0.6.26"
178
+ version = "0.6.28"
189
179
  source = "registry+https://github.com/rust-lang/crates.io-index"
190
- checksum = "49b3de9ec5dc0a3417da371aab17d729997c15010e7fd24ff707773a33bddb64"
180
+ checksum = "456c603be3e8d448b072f410900c09faf164fbce2d480456f50eea6e25f9c848"
191
181
 
192
182
  [[package]]
193
183
  name = "rust_ruby_example"
@@ -216,9 +206,9 @@ checksum = "43b2853a4d09f215c24cc5489c992ce46052d359b5109343cbafbf26bc62f8a3"
216
206
 
217
207
  [[package]]
218
208
  name = "unicode-ident"
219
- version = "1.0.1"
209
+ version = "1.0.5"
220
210
  source = "registry+https://github.com/rust-lang/crates.io-index"
221
- checksum = "5bd2fe26506023ed7b5e1e315add59d6f584c621d037f9368fea9cfb988f368c"
211
+ checksum = "6ceab39d59e4c9499d4e5a8ee0e2735b891bb7308ac83dfb4e80cad195c9f6f3"
222
212
 
223
213
  [[package]]
224
214
  name = "winapi"
@@ -7,4 +7,4 @@ edition = "2021"
7
7
  crate-type = ["cdylib"]
8
8
 
9
9
  [dependencies]
10
- rb-sys = "0.9.37"
10
+ rb-sys = "0.9.52"
@@ -21,6 +21,18 @@ unsafe extern "C" fn pub_reverse(_klass: VALUE, mut input: VALUE) -> VALUE {
21
21
  rb_utf8_str_new(reversed_cstring.as_ptr(), size)
22
22
  }
23
23
 
24
+ #[cfg(rubygems)]
25
+ #[no_mangle]
26
+ pub extern "C" fn hello_from_rubygems() {}
27
+
28
+ #[cfg(rubygems_0_0_0)]
29
+ #[no_mangle]
30
+ pub extern "C" fn should_never_exist() {}
31
+
32
+ #[cfg(rubygems_x_x_x)]
33
+ #[no_mangle]
34
+ pub extern "C" fn hello_from_rubygems_version() {}
35
+
24
36
  #[allow(non_snake_case)]
25
37
  #[no_mangle]
26
38
  pub extern "C" fn Init_rust_ruby_example() {
@@ -2,6 +2,7 @@
2
2
 
3
3
  require_relative "helper"
4
4
  require "rubygems/ext"
5
+ require "open3"
5
6
 
6
7
  class TestGemExtCargoBuilder < Gem::TestCase
7
8
  def setup
@@ -22,25 +23,6 @@ class TestGemExtCargoBuilder < Gem::TestCase
22
23
  FileUtils.cp_r(@fixture_dir.to_s, @ext)
23
24
  end
24
25
 
25
- def test_build_staticlib
26
- skip_unsupported_platforms!
27
- setup_rust_gem "rust_ruby_example"
28
-
29
- content = @fixture_dir.join("Cargo.toml").read.gsub("cdylib", "staticlib")
30
- File.write(File.join(@ext, "Cargo.toml"), content)
31
-
32
- output = []
33
-
34
- Dir.chdir @ext do
35
- ENV.update(@rust_envs)
36
- spec = Gem::Specification.new "rust_ruby_example", "0.1.0"
37
- builder = Gem::Ext::CargoBuilder.new(spec)
38
- assert_raise(Gem::Ext::CargoBuilder::DylibNotFoundError) do
39
- builder.build nil, @dest_path, output
40
- end
41
- end
42
- end
43
-
44
26
  def test_build_cdylib
45
27
  skip_unsupported_platforms!
46
28
  setup_rust_gem "rust_ruby_example"
@@ -57,7 +39,8 @@ class TestGemExtCargoBuilder < Gem::TestCase
57
39
  output = output.join "\n"
58
40
  bundle = File.join(@dest_path, "release/rust_ruby_example.#{RbConfig::CONFIG['DLEXT']}")
59
41
 
60
- assert_match "Finished release [optimized] target(s)", output
42
+ assert_match(/Finished/, output)
43
+ assert_match(/release/, output)
61
44
  assert_ffi_handle bundle, "Init_rust_ruby_example"
62
45
  rescue Exception => e
63
46
  pp output if output
@@ -65,25 +48,27 @@ class TestGemExtCargoBuilder < Gem::TestCase
65
48
  raise(e)
66
49
  end
67
50
 
68
- def test_build_dev_profile
51
+ def test_rubygems_cfg_passed_to_rustc
69
52
  skip_unsupported_platforms!
70
53
  setup_rust_gem "rust_ruby_example"
71
-
54
+ version_slug = Gem::VERSION.tr(".", "_")
72
55
  output = []
73
56
 
57
+ replace_in_rust_file("src/lib.rs", "rubygems_x_x_x", "rubygems_#{version_slug}")
58
+
74
59
  Dir.chdir @ext do
75
60
  ENV.update(@rust_envs)
76
61
  spec = Gem::Specification.new "rust_ruby_example", "0.1.0"
77
62
  builder = Gem::Ext::CargoBuilder.new(spec)
78
- builder.profile = :dev
79
63
  builder.build nil, @dest_path, output
80
64
  end
81
65
 
82
66
  output = output.join "\n"
83
- bundle = File.join(@dest_path, "debug/rust_ruby_example.#{RbConfig::CONFIG['DLEXT']}")
67
+ bundle = File.join(@dest_path, "release/rust_ruby_example.#{RbConfig::CONFIG['DLEXT']}")
84
68
 
85
- assert_match "Finished dev [unoptimized + debuginfo] target(s)", output
86
- assert_ffi_handle bundle, "Init_rust_ruby_example"
69
+ assert_ffi_handle bundle, "hello_from_rubygems"
70
+ assert_ffi_handle bundle, "hello_from_rubygems_version"
71
+ refute_ffi_handle bundle, "should_never_exist"
87
72
  rescue Exception => e
88
73
  pp output if output
89
74
 
@@ -164,7 +149,6 @@ class TestGemExtCargoBuilder < Gem::TestCase
164
149
  def skip_unsupported_platforms!
165
150
  pend "jruby not supported" if java_platform?
166
151
  pend "truffleruby not supported (yet)" if RUBY_ENGINE == "truffleruby"
167
- pend "mswin not supported (yet)" if /mswin/ =~ RUBY_PLATFORM && ENV.key?("GITHUB_ACTIONS")
168
152
  system(@rust_envs, "cargo", "-V", out: IO::NULL, err: [:child, :out])
169
153
  pend "cargo not present" unless $?.success?
170
154
  pend "ruby.h is not provided by ruby repo" if ruby_repo?
@@ -175,4 +159,15 @@ class TestGemExtCargoBuilder < Gem::TestCase
175
159
  dylib_handle = Fiddle.dlopen bundle
176
160
  assert_nothing_raised { dylib_handle[name] }
177
161
  end
162
+
163
+ def refute_ffi_handle(bundle, name)
164
+ require "fiddle"
165
+ dylib_handle = Fiddle.dlopen bundle
166
+ assert_raise { dylib_handle[name] }
167
+ end
168
+
169
+ def replace_in_rust_file(name, from, to)
170
+ content = @fixture_dir.join(name).read.gsub(from, to)
171
+ File.write(File.join(@ext, name), content)
172
+ end
178
173
  end
@@ -5,22 +5,22 @@ require "rubygems/ext/cargo_builder/link_flag_converter"
5
5
 
6
6
  class TestGemExtCargoBuilderLinkFlagConverter < Gem::TestCase
7
7
  CASES = {
8
- test_search_path_basic: ["-L/usr/local/lib", ["-L", "native=/usr/local/lib"]],
9
- test_search_path_space: ["-L /usr/local/lib", ["-L", "native=/usr/local/lib"]],
10
- test_search_path_space_in_path: ["-L/usr/local/my\ lib", ["-L", "native=/usr/local/my\ lib"]],
11
- test_simple_lib: ["-lfoo", ["-l", "foo"]],
12
- test_lib_with_nonascii: ["-lws2_32", ["-l", "ws2_32"]],
13
- test_simple_lib_space: ["-l foo", ["-l", "foo"]],
14
- test_verbose_lib_space: ["--library=foo", ["-l", "foo"]],
15
- test_libstatic_with_colon: ["-l:libssp.a", ["-l", "static=ssp"]],
16
- test_libstatic_with_colon_space: ["-l :libssp.a", ["-l", "static=ssp"]],
17
- test_unconventional_lib_with_colon: ["-l:ssp.a", ["-C", "link_arg=-l:ssp.a"]],
18
- test_dylib_with_colon_space: ["-l :libssp.dylib", ["-l", "dylib=ssp"]],
19
- test_so_with_colon_space: ["-l :libssp.so", ["-l", "dylib=ssp"]],
20
- test_dll_with_colon_space: ["-l :libssp.dll", ["-l", "dylib=ssp"]],
21
- test_framework: ["-F/some/path", ["-l", "framework=/some/path"]],
22
- test_framework_space: ["-F /some/path", ["-l", "framework=/some/path"]],
23
- test_non_lib_dash_l: ["test_rubygems_20220413-976-lemgf9/prefix", ["-C", "link_arg=test_rubygems_20220413-976-lemgf9/prefix"]],
8
+ test_search_path_basic: ["-L/usr/local/lib", ["-L", "native=/usr/local/lib"]],
9
+ test_search_path_space: ["-L /usr/local/lib", ["-L", "native=/usr/local/lib"]],
10
+ test_search_path_space_in_path: ["-L/usr/local/my\ lib", ["-L", "native=/usr/local/my\ lib"]],
11
+ test_simple_lib: ["-lfoo", ["-l", "foo"]],
12
+ test_lib_with_nonascii: ["-lws2_32", ["-l", "ws2_32"]],
13
+ test_simple_lib_space: ["-l foo", ["-l", "foo"]],
14
+ test_verbose_lib_space: ["--library=foo", ["-l", "foo"]],
15
+ test_libstatic_with_colon: ["-l:libssp.a", ["-C", "link-args=-l:libssp.a"]],
16
+ test_libstatic_with_colon_space: ["-l :libssp.a", ["-C", "link-args=-l :libssp.a"]],
17
+ test_unconventional_lib_with_colon: ["-l:ssp.a", ["-C", "link-args=-l:ssp.a"]],
18
+ test_dylib_with_colon_space: ["-l :libssp.dylib", ["-C", "link-args=-l :libssp.dylib"]],
19
+ test_so_with_colon_space: ["-l :libssp.so", ["-C", "link-args=-l :libssp.so"]],
20
+ test_dll_with_colon_space: ["-l :libssp.dll", ["-C", "link-args=-l :libssp.dll"]],
21
+ test_framework: ["-F/some/path", ["-l", "framework=/some/path"]],
22
+ test_framework_space: ["-F /some/path", ["-l", "framework=/some/path"]],
23
+ test_non_lib_dash_l: ["test_rubygems_20220413-976-lemgf9/prefix", ["-C", "link-args=test_rubygems_20220413-976-lemgf9/prefix"]],
24
24
  }.freeze
25
25
 
26
26
  CASES.each do |test_name, (arg, expected)|
@@ -23,16 +23,6 @@ class TestGemExtCargoBuilderUnit < Gem::TestCase
23
23
  assert_includes command, "--locked"
24
24
  end
25
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"
34
- end
35
-
36
26
  def test_cargo_command_passes_respects_cargo_env_var
37
27
  skip_unsupported_platforms!
38
28
  old_cargo = ENV["CARGO"]
@@ -31,15 +31,33 @@ class TestGemIndexer < Gem::TestCase
31
31
  @indexer = Gem::Indexer.new(@indexerdir)
32
32
  end
33
33
 
34
+ def teardown
35
+ FileUtils.rm_rf(@indexer.directory)
36
+ ensure
37
+ super
38
+ end
39
+
40
+ def with_indexer(dir, **opts)
41
+ indexer = Gem::Indexer.new(dir, **opts)
42
+ build_directory = indexer.directory
43
+ yield indexer
44
+ ensure
45
+ FileUtils.rm_rf(build_directory) if build_directory
46
+ end
47
+
34
48
  def test_initialize
35
49
  assert_equal @indexerdir, @indexer.dest_directory
36
- assert_match %r{#{Dir.mktmpdir('gem_generate_index').match(/.*-/)}}, @indexer.directory
50
+ Dir.mktmpdir("gem_generate_index") do |tmpdir|
51
+ assert_match %r{#{tmpdir.match(/.*-/)}}, @indexer.directory
52
+ end
37
53
 
38
- indexer = Gem::Indexer.new @indexerdir
39
- assert indexer.build_modern
54
+ with_indexer(@indexerdir) do |indexer|
55
+ assert_predicate indexer, :build_modern
56
+ end
40
57
 
41
- indexer = Gem::Indexer.new @indexerdir, :build_modern => true
42
- assert indexer.build_modern
58
+ with_indexer(@indexerdir, :build_modern => true) do |indexer|
59
+ assert_predicate indexer, :build_modern
60
+ end
43
61
  end
44
62
 
45
63
  def test_build_indices
@@ -159,26 +177,27 @@ class TestGemIndexer < Gem::TestCase
159
177
  @indexer.generate_index
160
178
  end
161
179
 
162
- @indexer = Gem::Indexer.new @indexerdir
163
- @indexer.build_modern = true
180
+ with_indexer @indexerdir do |indexer|
181
+ indexer.build_modern = true
164
182
 
165
- use_ui @ui do
166
- @indexer.generate_index
167
- end
168
- quickdir = File.join @indexerdir, "quick"
169
- marshal_quickdir = File.join quickdir, "Marshal.#{@marshal_version}"
183
+ use_ui @ui do
184
+ indexer.generate_index
185
+ end
186
+ quickdir = File.join @indexerdir, "quick"
187
+ marshal_quickdir = File.join quickdir, "Marshal.#{@marshal_version}"
170
188
 
171
- assert_directory_exists quickdir
172
- assert_directory_exists marshal_quickdir
189
+ assert_directory_exists quickdir
190
+ assert_directory_exists marshal_quickdir
173
191
 
174
- assert_indexed marshal_quickdir, "#{File.basename(@a1.spec_file)}.rz"
175
- assert_indexed marshal_quickdir, "#{File.basename(@a2.spec_file)}.rz"
192
+ assert_indexed marshal_quickdir, "#{File.basename(@a1.spec_file)}.rz"
193
+ assert_indexed marshal_quickdir, "#{File.basename(@a2.spec_file)}.rz"
176
194
 
177
- assert_indexed @indexerdir, "specs.#{@marshal_version}"
178
- assert_indexed @indexerdir, "specs.#{@marshal_version}.gz"
195
+ assert_indexed @indexerdir, "specs.#{@marshal_version}"
196
+ assert_indexed @indexerdir, "specs.#{@marshal_version}.gz"
179
197
 
180
- assert_indexed @indexerdir, "latest_specs.#{@marshal_version}"
181
- assert_indexed @indexerdir, "latest_specs.#{@marshal_version}.gz"
198
+ assert_indexed @indexerdir, "latest_specs.#{@marshal_version}"
199
+ assert_indexed @indexerdir, "latest_specs.#{@marshal_version}.gz"
200
+ end
182
201
  end
183
202
 
184
203
  def test_generate_index_ui
@@ -1493,7 +1493,7 @@ gem 'other', version
1493
1493
 
1494
1494
  def test_install_extension_and_script
1495
1495
  pend "Makefile creation crashes on jruby" if Gem.java_platform?
1496
- pend if /mswin/ =~ RUBY_PLATFORM && ENV.key?("GITHUB_ACTIONS") # not working from the beginning
1496
+ pend if RUBY_PLATFORM.include?("mswin") && ENV.key?("GITHUB_ACTIONS") # not working from the beginning
1497
1497
 
1498
1498
  @spec = setup_base_spec
1499
1499
  @spec.extensions << "extconf.rb"
@@ -1559,7 +1559,7 @@ gem 'other', version
1559
1559
  write_file File.join(@tempdir, file)
1560
1560
  end
1561
1561
 
1562
- so = File.join(@spec.gem_dir, "#{@spec.name}.#{RbConfig::CONFIG["DLEXT"]}")
1562
+ so = File.join(@spec.extension_dir, "#{@spec.name}.#{RbConfig::CONFIG["DLEXT"]}")
1563
1563
  assert_path_not_exist so
1564
1564
  use_ui @ui do
1565
1565
  path = Gem::Package.build @spec
@@ -1584,6 +1584,41 @@ gem 'other', version
1584
1584
  end
1585
1585
  end
1586
1586
 
1587
+ def test_install_extension_clean_intermediate_files
1588
+ pend "extensions don't quite work on jruby" if Gem.java_platform?
1589
+ @spec = setup_base_spec
1590
+ @spec.require_paths = ["."]
1591
+ @spec.extensions << "extconf.rb"
1592
+
1593
+ File.write File.join(@tempdir, "extconf.rb"), <<-RUBY
1594
+ require "mkmf"
1595
+ CONFIG['CC'] = '$(TOUCH) $@ ||'
1596
+ CONFIG['LDSHARED'] = '$(TOUCH) $@ ||'
1597
+ $ruby = '#{Gem.ruby}'
1598
+ create_makefile("#{@spec.name}")
1599
+ RUBY
1600
+
1601
+ # empty depend file for no auto dependencies
1602
+ @spec.files += %W[depend #{@spec.name}.c].each do |file|
1603
+ write_file File.join(@tempdir, file)
1604
+ end
1605
+
1606
+ shared_object = "#{@spec.name}.#{RbConfig::CONFIG["DLEXT"]}"
1607
+ extension_file = File.join @spec.extension_dir, shared_object
1608
+ intermediate_file = File.join @spec.gem_dir, shared_object
1609
+
1610
+ assert_path_not_exist extension_file, "no before installing"
1611
+ use_ui @ui do
1612
+ path = Gem::Package.build @spec
1613
+
1614
+ installer = Gem::Installer.at path
1615
+ installer.install
1616
+ end
1617
+
1618
+ assert_path_exist extension_file, "installed"
1619
+ assert_path_not_exist intermediate_file
1620
+ end
1621
+
1587
1622
  def test_installation_satisfies_dependency_eh
1588
1623
  installer = setup_base_installer
1589
1624
 
@@ -2222,6 +2257,37 @@ gem 'other', version
2222
2257
  assert_equal @spec, eval(File.read(@spec.spec_file))
2223
2258
  end
2224
2259
 
2260
+ def test_leaves_no_empty_cached_spec_when_no_more_disk_space
2261
+ @spec = setup_base_spec
2262
+ FileUtils.rm @spec.spec_file
2263
+ assert_path_not_exist @spec.spec_file
2264
+
2265
+ @spec.files = %w[a.rb b.rb c.rb]
2266
+
2267
+ installer = Gem::Installer.for_spec @spec
2268
+ installer.gem_home = @gemhome
2269
+
2270
+ File.class_eval do
2271
+ alias_method :original_write, :write
2272
+
2273
+ def write(data)
2274
+ raise Errno::ENOSPC
2275
+ end
2276
+ end
2277
+
2278
+ assert_raise Errno::ENOSPC do
2279
+ installer.write_spec
2280
+ end
2281
+
2282
+ assert_path_not_exist @spec.spec_file
2283
+ ensure
2284
+ File.class_eval do
2285
+ remove_method :write
2286
+ alias_method :write, :original_write # rubocop:disable Lint/DuplicateMethods
2287
+ remove_method :original_write
2288
+ end
2289
+ end
2290
+
2225
2291
  def test_dir
2226
2292
  installer = setup_base_installer
2227
2293
 
@@ -7,19 +7,19 @@ class TestGemPackageTarHeader < Gem::Package::TarTestCase
7
7
  super
8
8
 
9
9
  header = {
10
- :name => "x",
11
- :mode => 0644,
12
- :uid => 1000,
13
- :gid => 10000,
14
- :size => 100,
15
- :mtime => 12345,
10
+ :name => "x",
11
+ :mode => 0644,
12
+ :uid => 1000,
13
+ :gid => 10000,
14
+ :size => 100,
15
+ :mtime => 12345,
16
16
  :typeflag => "0",
17
17
  :linkname => "link",
18
- :uname => "user",
19
- :gname => "group",
18
+ :uname => "user",
19
+ :gname => "group",
20
20
  :devmajor => 1,
21
21
  :devminor => 2,
22
- :prefix => "y",
22
+ :prefix => "y",
23
23
  }
24
24
 
25
25
  @tar_header = Gem::Package::TarHeader.new header
@@ -76,10 +76,10 @@ class TestGemPackageTarHeader < Gem::Package::TarTestCase
76
76
 
77
77
  def test_initialize_typeflag
78
78
  header = {
79
- :mode => "",
80
- :name => "",
81
- :prefix => "",
82
- :size => "",
79
+ :mode => "",
80
+ :name => "",
81
+ :prefix => "",
82
+ :size => "",
83
83
  :typeflag => "",
84
84
  }
85
85