rubygems-update 3.2.30 → 3.4.10

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 (641) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +1666 -994
  3. data/CONTRIBUTING.md +71 -15
  4. data/Manifest.txt +93 -37
  5. data/POLICIES.md +65 -16
  6. data/README.md +28 -13
  7. data/UPGRADING.md +5 -81
  8. data/bin/gem +2 -10
  9. data/bin/update_rubygems +5 -5
  10. data/bundler/CHANGELOG.md +647 -1
  11. data/bundler/README.md +3 -6
  12. data/bundler/UPGRADING.md +11 -4
  13. data/bundler/bundler.gemspec +8 -10
  14. data/bundler/exe/bundle +7 -11
  15. data/bundler/exe/bundler +1 -1
  16. data/bundler/lib/bundler/.document +1 -0
  17. data/bundler/lib/bundler/build_metadata.rb +3 -3
  18. data/bundler/lib/bundler/cli/add.rb +1 -1
  19. data/bundler/lib/bundler/cli/binstubs.rb +5 -1
  20. data/bundler/lib/bundler/cli/check.rb +1 -1
  21. data/bundler/lib/bundler/cli/common.rb +4 -2
  22. data/bundler/lib/bundler/cli/config.rb +10 -1
  23. data/bundler/lib/bundler/cli/console.rb +2 -2
  24. data/bundler/lib/bundler/cli/doctor.rb +10 -3
  25. data/bundler/lib/bundler/cli/gem.rb +136 -42
  26. data/bundler/lib/bundler/cli/info.rb +17 -3
  27. data/bundler/lib/bundler/cli/init.rb +6 -2
  28. data/bundler/lib/bundler/cli/install.rb +15 -33
  29. data/bundler/lib/bundler/cli/lock.rb +8 -5
  30. data/bundler/lib/bundler/cli/open.rb +6 -4
  31. data/bundler/lib/bundler/cli/outdated.rb +13 -6
  32. data/bundler/lib/bundler/cli/platform.rb +2 -2
  33. data/bundler/lib/bundler/cli/show.rb +1 -1
  34. data/bundler/lib/bundler/cli/update.rb +8 -4
  35. data/bundler/lib/bundler/cli/viz.rb +1 -1
  36. data/bundler/lib/bundler/cli.rb +67 -21
  37. data/bundler/lib/bundler/compact_index_client/cache.rb +1 -10
  38. data/bundler/lib/bundler/compact_index_client/updater.rb +53 -44
  39. data/bundler/lib/bundler/compact_index_client.rb +0 -6
  40. data/bundler/lib/bundler/constants.rb +1 -1
  41. data/bundler/lib/bundler/current_ruby.rb +18 -6
  42. data/bundler/lib/bundler/definition.rb +259 -242
  43. data/bundler/lib/bundler/dependency.rb +24 -71
  44. data/bundler/lib/bundler/digest.rb +1 -1
  45. data/bundler/lib/bundler/dsl.rb +29 -46
  46. data/bundler/lib/bundler/endpoint_specification.rb +15 -13
  47. data/bundler/lib/bundler/env.rb +2 -2
  48. data/bundler/lib/bundler/environment_preserver.rb +7 -3
  49. data/bundler/lib/bundler/errors.rb +15 -15
  50. data/bundler/lib/bundler/feature_flag.rb +0 -1
  51. data/bundler/lib/bundler/fetcher/base.rb +6 -8
  52. data/bundler/lib/bundler/fetcher/compact_index.rb +18 -25
  53. data/bundler/lib/bundler/fetcher/dependency.rb +2 -6
  54. data/bundler/lib/bundler/fetcher/downloader.rb +2 -5
  55. data/bundler/lib/bundler/fetcher/index.rb +0 -26
  56. data/bundler/lib/bundler/fetcher.rb +22 -29
  57. data/bundler/lib/bundler/force_platform.rb +18 -0
  58. data/bundler/lib/bundler/friendly_errors.rb +21 -7
  59. data/bundler/lib/bundler/gem_helper.rb +4 -4
  60. data/bundler/lib/bundler/gem_helpers.rb +9 -2
  61. data/bundler/lib/bundler/gem_version_promoter.rb +53 -98
  62. data/bundler/lib/bundler/graph.rb +3 -3
  63. data/bundler/lib/bundler/index.rb +13 -51
  64. data/bundler/lib/bundler/injector.rb +18 -4
  65. data/bundler/lib/bundler/inline.rb +9 -21
  66. data/bundler/lib/bundler/installer/gem_installer.rb +13 -5
  67. data/bundler/lib/bundler/installer/parallel_installer.rb +3 -33
  68. data/bundler/lib/bundler/installer/standalone.rb +42 -11
  69. data/bundler/lib/bundler/installer.rb +20 -44
  70. data/bundler/lib/bundler/lazy_specification.rb +72 -55
  71. data/bundler/lib/bundler/lockfile_generator.rb +3 -3
  72. data/bundler/lib/bundler/lockfile_parser.rb +28 -26
  73. data/bundler/lib/bundler/man/bundle-add.1 +21 -5
  74. data/bundler/lib/bundler/man/bundle-add.1.ronn +16 -4
  75. data/bundler/lib/bundler/man/bundle-binstubs.1 +1 -1
  76. data/bundler/lib/bundler/man/bundle-cache.1 +7 -1
  77. data/bundler/lib/bundler/man/bundle-cache.1.ronn +7 -0
  78. data/bundler/lib/bundler/man/bundle-check.1 +1 -1
  79. data/bundler/lib/bundler/man/bundle-clean.1 +2 -2
  80. data/bundler/lib/bundler/man/bundle-clean.1.ronn +1 -1
  81. data/bundler/lib/bundler/man/bundle-config.1 +34 -15
  82. data/bundler/lib/bundler/man/bundle-config.1.ronn +31 -19
  83. data/bundler/lib/bundler/man/bundle-console.1 +53 -0
  84. data/bundler/lib/bundler/man/bundle-console.1.ronn +44 -0
  85. data/bundler/lib/bundler/man/bundle-doctor.1 +1 -1
  86. data/bundler/lib/bundler/man/bundle-exec.1 +6 -6
  87. data/bundler/lib/bundler/man/bundle-exec.1.ronn +6 -6
  88. data/bundler/lib/bundler/man/bundle-gem.1 +37 -34
  89. data/bundler/lib/bundler/man/bundle-gem.1.ronn +21 -5
  90. data/bundler/lib/bundler/man/bundle-help.1 +13 -0
  91. data/bundler/lib/bundler/man/bundle-help.1.ronn +12 -0
  92. data/bundler/lib/bundler/man/bundle-info.1 +1 -1
  93. data/bundler/lib/bundler/man/bundle-init.1 +5 -1
  94. data/bundler/lib/bundler/man/bundle-init.1.ronn +2 -0
  95. data/bundler/lib/bundler/man/bundle-inject.1 +5 -2
  96. data/bundler/lib/bundler/man/bundle-inject.1.ronn +3 -1
  97. data/bundler/lib/bundler/man/bundle-install.1 +6 -31
  98. data/bundler/lib/bundler/man/bundle-install.1.ronn +8 -31
  99. data/bundler/lib/bundler/man/bundle-list.1 +1 -1
  100. data/bundler/lib/bundler/man/bundle-lock.1 +1 -1
  101. data/bundler/lib/bundler/man/bundle-open.1 +22 -2
  102. data/bundler/lib/bundler/man/bundle-open.1.ronn +9 -1
  103. data/bundler/lib/bundler/man/bundle-outdated.1 +3 -10
  104. data/bundler/lib/bundler/man/bundle-outdated.1.ronn +1 -10
  105. data/bundler/lib/bundler/man/bundle-platform.1 +16 -6
  106. data/bundler/lib/bundler/man/bundle-platform.1.ronn +14 -7
  107. data/bundler/lib/bundler/man/bundle-plugin.1 +81 -0
  108. data/bundler/lib/bundler/man/bundle-plugin.1.ronn +59 -0
  109. data/bundler/lib/bundler/man/bundle-pristine.1 +1 -1
  110. data/bundler/lib/bundler/man/bundle-remove.1 +1 -1
  111. data/bundler/lib/bundler/man/bundle-show.1 +1 -1
  112. data/bundler/lib/bundler/man/bundle-update.1 +2 -2
  113. data/bundler/lib/bundler/man/bundle-update.1.ronn +2 -1
  114. data/bundler/lib/bundler/man/bundle-version.1 +35 -0
  115. data/bundler/lib/bundler/man/bundle-version.1.ronn +24 -0
  116. data/bundler/lib/bundler/man/bundle-viz.1 +4 -1
  117. data/bundler/lib/bundler/man/bundle-viz.1.ronn +2 -0
  118. data/bundler/lib/bundler/man/bundle.1 +15 -10
  119. data/bundler/lib/bundler/man/bundle.1.ronn +12 -7
  120. data/bundler/lib/bundler/man/gemfile.5 +117 -80
  121. data/bundler/lib/bundler/man/gemfile.5.ronn +105 -84
  122. data/bundler/lib/bundler/man/index.txt +4 -0
  123. data/bundler/lib/bundler/match_metadata.rb +13 -0
  124. data/bundler/lib/bundler/match_platform.rb +0 -1
  125. data/bundler/lib/bundler/match_remote_metadata.rb +29 -0
  126. data/bundler/lib/bundler/mirror.rb +5 -7
  127. data/bundler/lib/bundler/plugin/api/source.rb +4 -9
  128. data/bundler/lib/bundler/plugin/index.rb +4 -4
  129. data/bundler/lib/bundler/plugin/installer/git.rb +0 -4
  130. data/bundler/lib/bundler/plugin/installer/rubygems.rb +0 -8
  131. data/bundler/lib/bundler/plugin/installer.rb +6 -3
  132. data/bundler/lib/bundler/plugin.rb +3 -1
  133. data/bundler/lib/bundler/process_lock.rb +1 -1
  134. data/bundler/lib/bundler/remote_specification.rb +7 -5
  135. data/bundler/lib/bundler/resolver/base.rb +109 -0
  136. data/bundler/lib/bundler/resolver/candidate.rb +94 -0
  137. data/bundler/lib/bundler/resolver/incompatibility.rb +15 -0
  138. data/bundler/lib/bundler/resolver/package.rb +72 -0
  139. data/bundler/lib/bundler/resolver/root.rb +25 -0
  140. data/bundler/lib/bundler/resolver/spec_group.rb +43 -71
  141. data/bundler/lib/bundler/resolver.rb +332 -308
  142. data/bundler/lib/bundler/ruby_dsl.rb +1 -1
  143. data/bundler/lib/bundler/ruby_version.rb +5 -18
  144. data/bundler/lib/bundler/rubygems_ext.rb +144 -25
  145. data/bundler/lib/bundler/rubygems_gem_installer.rb +32 -20
  146. data/bundler/lib/bundler/rubygems_integration.rb +24 -95
  147. data/bundler/lib/bundler/runtime.rb +2 -7
  148. data/bundler/lib/bundler/self_manager.rb +168 -0
  149. data/bundler/lib/bundler/settings.rb +5 -10
  150. data/bundler/lib/bundler/setup.rb +4 -1
  151. data/bundler/lib/bundler/shared_helpers.rb +17 -25
  152. data/bundler/lib/bundler/source/git/git_proxy.rb +219 -71
  153. data/bundler/lib/bundler/source/git.rb +23 -26
  154. data/bundler/lib/bundler/source/metadata.rb +3 -4
  155. data/bundler/lib/bundler/source/path/installer.rb +1 -22
  156. data/bundler/lib/bundler/source/path.rb +7 -7
  157. data/bundler/lib/bundler/source/rubygems.rb +91 -130
  158. data/bundler/lib/bundler/source/rubygems_aggregate.rb +1 -1
  159. data/bundler/lib/bundler/source.rb +4 -5
  160. data/bundler/lib/bundler/source_list.rb +19 -31
  161. data/bundler/lib/bundler/source_map.rb +15 -2
  162. data/bundler/lib/bundler/spec_set.rb +63 -35
  163. data/bundler/lib/bundler/stub_specification.rb +5 -3
  164. data/bundler/lib/bundler/templates/Executable +3 -5
  165. data/bundler/lib/bundler/templates/Executable.bundler +6 -11
  166. data/bundler/lib/bundler/templates/Executable.standalone +4 -4
  167. data/bundler/lib/bundler/templates/Gemfile +0 -2
  168. data/bundler/lib/bundler/templates/newgem/Cargo.toml.tt +7 -0
  169. data/bundler/lib/bundler/templates/newgem/Gemfile.tt +8 -2
  170. data/bundler/lib/bundler/templates/newgem/README.md.tt +7 -11
  171. data/bundler/lib/bundler/templates/newgem/Rakefile.tt +27 -3
  172. data/bundler/lib/bundler/templates/newgem/circleci/config.yml.tt +12 -0
  173. data/bundler/lib/bundler/templates/newgem/ext/newgem/Cargo.toml.tt +15 -0
  174. data/bundler/lib/bundler/templates/newgem/ext/newgem/extconf-rust.rb.tt +6 -0
  175. data/bundler/lib/bundler/templates/newgem/ext/newgem/src/lib.rs.tt +12 -0
  176. data/bundler/lib/bundler/templates/newgem/github/workflows/main.yml.tt +13 -3
  177. data/bundler/lib/bundler/templates/newgem/gitignore.tt +3 -0
  178. data/bundler/lib/bundler/templates/newgem/gitlab-ci.yml.tt +13 -4
  179. data/bundler/lib/bundler/templates/newgem/newgem.gemspec.tt +22 -16
  180. data/bundler/lib/bundler/templates/newgem/sig/newgem.rbs.tt +8 -0
  181. data/bundler/lib/bundler/templates/newgem/standard.yml.tt +3 -0
  182. data/bundler/lib/bundler/templates/newgem/test/minitest/{newgem_test.rb.tt → test_newgem.rb.tt} +1 -1
  183. data/bundler/lib/bundler/ui/shell.rb +36 -13
  184. data/bundler/lib/bundler/ui/silent.rb +21 -5
  185. data/bundler/lib/bundler/uri_normalizer.rb +23 -0
  186. data/bundler/lib/bundler/vendor/.document +1 -0
  187. data/bundler/lib/bundler/vendor/connection_pool/lib/connection_pool/timed_stack.rb +3 -3
  188. data/bundler/lib/bundler/vendor/connection_pool/lib/connection_pool/wrapper.rb +0 -1
  189. data/bundler/lib/bundler/vendor/connection_pool/lib/connection_pool.rb +3 -1
  190. data/bundler/lib/bundler/vendor/fileutils/lib/fileutils.rb +1350 -408
  191. data/bundler/lib/bundler/vendor/net-http-persistent/README.rdoc +1 -1
  192. data/bundler/lib/bundler/vendor/net-http-persistent/lib/net/http/persistent.rb +1 -1
  193. data/bundler/lib/bundler/vendor/pub_grub/LICENSE.txt +21 -0
  194. data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/assignment.rb +20 -0
  195. data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/basic_package_source.rb +189 -0
  196. data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/failure_writer.rb +182 -0
  197. data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/incompatibility.rb +150 -0
  198. data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/package.rb +43 -0
  199. data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/partial_solution.rb +121 -0
  200. data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/rubygems.rb +45 -0
  201. data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/solve_failure.rb +19 -0
  202. data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/static_package_source.rb +60 -0
  203. data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/term.rb +105 -0
  204. data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/version.rb +3 -0
  205. data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/version_constraint.rb +129 -0
  206. data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/version_range.rb +411 -0
  207. data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/version_solver.rb +243 -0
  208. data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/version_union.rb +178 -0
  209. data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub.rb +31 -0
  210. data/bundler/lib/bundler/vendor/thor/lib/thor/actions/file_manipulation.rb +6 -6
  211. data/bundler/lib/bundler/vendor/thor/lib/thor/actions/inject_into_file.rb +1 -2
  212. data/bundler/lib/bundler/vendor/thor/lib/thor/actions.rb +6 -2
  213. data/bundler/lib/bundler/vendor/thor/lib/thor/core_ext/hash_with_indifferent_access.rb +6 -0
  214. data/bundler/lib/bundler/vendor/thor/lib/thor/error.rb +9 -4
  215. data/bundler/lib/bundler/vendor/thor/lib/thor/parser/options.rb +19 -1
  216. data/bundler/lib/bundler/vendor/thor/lib/thor/shell/basic.rb +23 -5
  217. data/bundler/lib/bundler/vendor/thor/lib/thor/shell.rb +1 -1
  218. data/bundler/lib/bundler/vendor/thor/lib/thor/util.rb +1 -1
  219. data/bundler/lib/bundler/vendor/thor/lib/thor/version.rb +1 -1
  220. data/bundler/lib/bundler/vendor/tsort/LICENSE.txt +22 -0
  221. data/bundler/lib/bundler/vendor/tsort/lib/tsort.rb +452 -0
  222. data/bundler/lib/bundler/vendor/uri/lib/uri/common.rb +76 -91
  223. data/bundler/lib/bundler/vendor/uri/lib/uri/file.rb +7 -1
  224. data/bundler/lib/bundler/vendor/uri/lib/uri/ftp.rb +2 -2
  225. data/bundler/lib/bundler/vendor/uri/lib/uri/generic.rb +32 -13
  226. data/bundler/lib/bundler/vendor/uri/lib/uri/http.rb +40 -3
  227. data/bundler/lib/bundler/vendor/uri/lib/uri/https.rb +2 -2
  228. data/bundler/lib/bundler/vendor/uri/lib/uri/ldap.rb +2 -2
  229. data/bundler/lib/bundler/vendor/uri/lib/uri/ldaps.rb +2 -1
  230. data/bundler/lib/bundler/vendor/uri/lib/uri/mailto.rb +2 -3
  231. data/bundler/lib/bundler/vendor/uri/lib/uri/rfc2396_parser.rb +14 -21
  232. data/bundler/lib/bundler/vendor/uri/lib/uri/rfc3986_parser.rb +11 -17
  233. data/bundler/lib/bundler/vendor/uri/lib/uri/version.rb +1 -1
  234. data/bundler/lib/bundler/vendor/uri/lib/uri/ws.rb +83 -0
  235. data/bundler/lib/bundler/vendor/uri/lib/uri/wss.rb +23 -0
  236. data/bundler/lib/bundler/vendor/uri/lib/uri.rb +3 -3
  237. data/bundler/lib/bundler/vendored_persistent.rb +1 -33
  238. data/bundler/lib/bundler/{vendored_molinillo.rb → vendored_pub_grub.rb} +1 -1
  239. data/bundler/lib/bundler/{vendored_tmpdir.rb → vendored_tsort.rb} +1 -1
  240. data/bundler/lib/bundler/version.rb +5 -1
  241. data/bundler/lib/bundler/worker.rb +5 -7
  242. data/bundler/lib/bundler.rb +50 -77
  243. data/hide_lib_for_update/note.txt +0 -4
  244. data/lib/rubygems/available_set.rb +3 -3
  245. data/lib/rubygems/basic_specification.rb +12 -12
  246. data/lib/rubygems/bundler_version_finder.rb +14 -46
  247. data/lib/rubygems/command.rb +47 -39
  248. data/lib/rubygems/command_manager.rb +34 -13
  249. data/lib/rubygems/commands/build_command.rb +11 -8
  250. data/lib/rubygems/commands/cert_command.rb +39 -39
  251. data/lib/rubygems/commands/check_command.rb +20 -20
  252. data/lib/rubygems/commands/cleanup_command.rb +23 -23
  253. data/lib/rubygems/commands/contents_command.rb +13 -13
  254. data/lib/rubygems/commands/dependency_command.rb +35 -45
  255. data/lib/rubygems/commands/environment_command.rb +10 -7
  256. data/lib/rubygems/commands/exec_command.rb +248 -0
  257. data/lib/rubygems/commands/fetch_command.rb +32 -13
  258. data/lib/rubygems/commands/generate_index_command.rb +17 -17
  259. data/lib/rubygems/commands/help_command.rb +6 -6
  260. data/lib/rubygems/commands/info_command.rb +3 -3
  261. data/lib/rubygems/commands/install_command.rb +31 -24
  262. data/lib/rubygems/commands/list_command.rb +4 -4
  263. data/lib/rubygems/commands/lock_command.rb +4 -4
  264. data/lib/rubygems/commands/mirror_command.rb +3 -3
  265. data/lib/rubygems/commands/open_command.rb +9 -9
  266. data/lib/rubygems/commands/outdated_command.rb +5 -5
  267. data/lib/rubygems/commands/owner_command.rb +17 -12
  268. data/lib/rubygems/commands/pristine_command.rb +64 -49
  269. data/lib/rubygems/commands/push_command.rb +16 -16
  270. data/lib/rubygems/commands/query_command.rb +9 -9
  271. data/lib/rubygems/commands/rdoc_command.rb +26 -25
  272. data/lib/rubygems/commands/search_command.rb +4 -4
  273. data/lib/rubygems/commands/server_command.rb +16 -79
  274. data/lib/rubygems/commands/setup_command.rb +172 -173
  275. data/lib/rubygems/commands/signin_command.rb +9 -9
  276. data/lib/rubygems/commands/signout_command.rb +7 -7
  277. data/lib/rubygems/commands/sources_command.rb +22 -22
  278. data/lib/rubygems/commands/specification_command.rb +18 -18
  279. data/lib/rubygems/commands/stale_command.rb +2 -2
  280. data/lib/rubygems/commands/uninstall_command.rb +43 -40
  281. data/lib/rubygems/commands/unpack_command.rb +13 -13
  282. data/lib/rubygems/commands/update_command.rb +61 -72
  283. data/lib/rubygems/commands/which_command.rb +7 -7
  284. data/lib/rubygems/commands/yank_command.rb +11 -11
  285. data/lib/rubygems/compatibility.rb +4 -2
  286. data/lib/rubygems/config_file.rb +58 -25
  287. data/lib/rubygems/core_ext/kernel_gem.rb +1 -6
  288. data/lib/rubygems/core_ext/kernel_require.rb +108 -115
  289. data/lib/rubygems/core_ext/kernel_warn.rb +33 -37
  290. data/lib/rubygems/core_ext/tcpsocket_init.rb +1 -1
  291. data/lib/rubygems/defaults.rb +32 -36
  292. data/lib/rubygems/dependency.rb +20 -17
  293. data/lib/rubygems/dependency_installer.rb +37 -37
  294. data/lib/rubygems/dependency_list.rb +7 -7
  295. data/lib/rubygems/deprecate.rb +55 -8
  296. data/lib/rubygems/doctor.rb +21 -21
  297. data/lib/rubygems/errors.rb +3 -6
  298. data/lib/rubygems/exceptions.rb +35 -7
  299. data/lib/rubygems/ext/build_error.rb +1 -1
  300. data/lib/rubygems/ext/builder.rb +51 -22
  301. data/lib/rubygems/ext/cargo_builder/link_flag_converter.rb +27 -0
  302. data/lib/rubygems/ext/cargo_builder.rb +360 -0
  303. data/lib/rubygems/ext/cmake_builder.rb +2 -2
  304. data/lib/rubygems/ext/configure_builder.rb +1 -1
  305. data/lib/rubygems/ext/ext_conf_builder.rb +35 -59
  306. data/lib/rubygems/ext/rake_builder.rb +3 -3
  307. data/lib/rubygems/ext.rb +7 -6
  308. data/lib/rubygems/gem_runner.rb +12 -16
  309. data/lib/rubygems/gemcutter_utilities.rb +60 -21
  310. data/lib/rubygems/indexer.rb +30 -28
  311. data/lib/rubygems/install_default_message.rb +2 -2
  312. data/lib/rubygems/install_message.rb +2 -2
  313. data/lib/rubygems/install_update_options.rb +70 -61
  314. data/lib/rubygems/installer.rb +135 -87
  315. data/lib/rubygems/installer_uninstaller_utils.rb +2 -2
  316. data/lib/rubygems/local_remote_options.rb +22 -24
  317. data/lib/rubygems/mock_gem_ui.rb +2 -2
  318. data/lib/rubygems/name_tuple.rb +6 -7
  319. data/lib/rubygems/optparse/.document +1 -0
  320. data/lib/rubygems/optparse/COPYING +56 -0
  321. data/lib/rubygems/optparse/lib/optionparser.rb +2 -0
  322. data/lib/rubygems/optparse/lib/optparse/ac.rb +54 -0
  323. data/lib/rubygems/optparse/lib/optparse/date.rb +18 -0
  324. data/lib/rubygems/optparse/lib/optparse/kwargs.rb +22 -0
  325. data/lib/rubygems/optparse/lib/optparse/shellwords.rb +7 -0
  326. data/lib/rubygems/optparse/lib/optparse/time.rb +11 -0
  327. data/lib/rubygems/optparse/lib/optparse/uri.rb +7 -0
  328. data/lib/rubygems/optparse/lib/optparse/version.rb +71 -0
  329. data/lib/rubygems/optparse/lib/optparse.rb +2308 -0
  330. data/lib/rubygems/optparse.rb +3 -0
  331. data/lib/rubygems/package/file_source.rb +2 -2
  332. data/lib/rubygems/package/old.rb +9 -9
  333. data/lib/rubygems/package/tar_header.rb +62 -62
  334. data/lib/rubygems/package/tar_reader/entry.rb +90 -9
  335. data/lib/rubygems/package/tar_reader.rb +1 -29
  336. data/lib/rubygems/package/tar_writer.rb +7 -7
  337. data/lib/rubygems/package.rb +77 -60
  338. data/lib/rubygems/package_task.rb +4 -4
  339. data/lib/rubygems/path_support.rb +1 -6
  340. data/lib/rubygems/platform.rb +94 -61
  341. data/lib/rubygems/psych_tree.rb +1 -1
  342. data/lib/rubygems/query_utils.rb +49 -51
  343. data/lib/rubygems/rdoc.rb +2 -2
  344. data/lib/rubygems/remote_fetcher.rb +27 -27
  345. data/lib/rubygems/request/connection_pools.rb +4 -4
  346. data/lib/rubygems/request/http_pool.rb +1 -1
  347. data/lib/rubygems/request.rb +24 -24
  348. data/lib/rubygems/request_set/gem_dependency_api.rb +122 -123
  349. data/lib/rubygems/request_set/lockfile/parser.rb +26 -26
  350. data/lib/rubygems/request_set/lockfile/tokenizer.rb +4 -4
  351. data/lib/rubygems/request_set/lockfile.rb +9 -9
  352. data/lib/rubygems/request_set.rb +18 -18
  353. data/lib/rubygems/requirement.rb +15 -15
  354. data/lib/rubygems/resolver/activation_request.rb +3 -3
  355. data/lib/rubygems/resolver/api_set.rb +4 -4
  356. data/lib/rubygems/resolver/api_specification.rb +6 -6
  357. data/lib/rubygems/resolver/best_set.rb +5 -5
  358. data/lib/rubygems/resolver/conflict.rb +10 -10
  359. data/lib/rubygems/resolver/dependency_request.rb +2 -2
  360. data/lib/rubygems/resolver/git_set.rb +2 -2
  361. data/lib/rubygems/resolver/git_specification.rb +6 -6
  362. data/lib/rubygems/resolver/index_set.rb +3 -3
  363. data/lib/rubygems/resolver/index_specification.rb +6 -5
  364. data/lib/rubygems/resolver/installed_specification.rb +4 -4
  365. data/lib/rubygems/resolver/installer_set.rb +21 -26
  366. data/lib/rubygems/resolver/local_specification.rb +2 -2
  367. data/lib/rubygems/resolver/lock_set.rb +4 -4
  368. data/lib/rubygems/resolver/lock_specification.rb +4 -4
  369. data/lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph.rb +3 -3
  370. data/lib/rubygems/resolver/molinillo/lib/molinillo/errors.rb +32 -26
  371. data/lib/rubygems/resolver/molinillo/lib/molinillo/gem_metadata.rb +1 -1
  372. data/lib/rubygems/resolver/molinillo.rb +1 -1
  373. data/lib/rubygems/resolver/specification.rb +1 -1
  374. data/lib/rubygems/resolver/stats.rb +1 -1
  375. data/lib/rubygems/resolver/vendor_set.rb +1 -1
  376. data/lib/rubygems/resolver/vendor_specification.rb +3 -3
  377. data/lib/rubygems/resolver.rb +40 -40
  378. data/lib/rubygems/s3_uri_signer.rb +6 -6
  379. data/lib/rubygems/safe_yaml.rb +10 -10
  380. data/lib/rubygems/security/policies.rb +47 -47
  381. data/lib/rubygems/security/policy.rb +19 -21
  382. data/lib/rubygems/security/signer.rb +5 -5
  383. data/lib/rubygems/security/trust_dir.rb +4 -4
  384. data/lib/rubygems/security.rb +37 -43
  385. data/lib/rubygems/security_option.rb +7 -7
  386. data/lib/rubygems/source/git.rb +25 -24
  387. data/lib/rubygems/source/installed.rb +1 -1
  388. data/lib/rubygems/source/local.rb +2 -2
  389. data/lib/rubygems/source/specific_file.rb +1 -1
  390. data/lib/rubygems/source.rb +27 -32
  391. data/lib/rubygems/source_list.rb +5 -9
  392. data/lib/rubygems/spec_fetcher.rb +37 -37
  393. data/lib/rubygems/specification.rb +265 -211
  394. data/lib/rubygems/specification_policy.rb +49 -30
  395. data/lib/rubygems/stub_specification.rb +24 -27
  396. data/lib/rubygems/text.rb +22 -21
  397. data/lib/rubygems/tsort/.document +1 -0
  398. data/lib/rubygems/tsort/LICENSE.txt +22 -0
  399. data/lib/rubygems/tsort/lib/tsort.rb +452 -0
  400. data/lib/rubygems/tsort.rb +3 -0
  401. data/lib/rubygems/uninstaller.rb +29 -26
  402. data/lib/rubygems/unknown_command_spell_checker.rb +21 -0
  403. data/lib/rubygems/update_suggestion.rb +69 -0
  404. data/lib/rubygems/uri.rb +45 -30
  405. data/lib/rubygems/uri_formatter.rb +1 -1
  406. data/lib/rubygems/user_interaction.rb +42 -28
  407. data/lib/rubygems/util/licenses.rb +4 -2
  408. data/lib/rubygems/util.rb +12 -16
  409. data/lib/rubygems/validator.rb +6 -6
  410. data/lib/rubygems/version.rb +28 -17
  411. data/lib/rubygems/version_option.rb +5 -5
  412. data/lib/rubygems.rb +129 -117
  413. data/rubygems-update.gemspec +3 -3
  414. data/setup.rb +11 -16
  415. data/test/rubygems/alternate_cert.pem +14 -14
  416. data/test/rubygems/alternate_cert_32.pem +15 -15
  417. data/test/rubygems/alternate_key.pem +25 -25
  418. data/test/rubygems/bundler_test_gem.rb +419 -0
  419. data/test/rubygems/child_cert.pem +15 -16
  420. data/test/rubygems/child_cert_32.pem +15 -16
  421. data/test/rubygems/child_key.pem +25 -25
  422. data/test/rubygems/data/excon-0.7.7.gemspec.rz +0 -0
  423. data/test/rubygems/data/pry-0.4.7.gemspec.rz +0 -0
  424. data/test/rubygems/encrypted_private_key.pem +26 -26
  425. data/test/rubygems/expired_cert.pem +15 -15
  426. data/test/rubygems/future_cert.pem +15 -15
  427. data/test/rubygems/future_cert_32.pem +15 -15
  428. data/test/rubygems/grandchild_cert.pem +15 -16
  429. data/test/rubygems/grandchild_cert_32.pem +15 -16
  430. data/test/rubygems/grandchild_key.pem +25 -25
  431. data/test/rubygems/helper.rb +237 -207
  432. data/test/rubygems/installer_test_case.rb +13 -13
  433. data/test/rubygems/invalid_issuer_cert.pem +16 -16
  434. data/test/rubygems/invalid_issuer_cert_32.pem +16 -16
  435. data/test/rubygems/invalid_key.pem +25 -25
  436. data/test/rubygems/invalid_signer_cert.pem +15 -15
  437. data/test/rubygems/invalid_signer_cert_32.pem +15 -15
  438. data/test/rubygems/invalidchild_cert.pem +15 -16
  439. data/test/rubygems/invalidchild_cert_32.pem +15 -16
  440. data/test/rubygems/invalidchild_key.pem +25 -25
  441. data/test/rubygems/package/tar_test_case.rb +52 -17
  442. data/test/rubygems/packages/Bluebie-legs-0.6.2.gem +0 -0
  443. data/test/rubygems/plugin/exception/rubygems_plugin.rb +1 -1
  444. data/test/rubygems/plugin/standarderror/rubygems_plugin.rb +1 -1
  445. data/test/rubygems/private_key.pem +25 -25
  446. data/test/rubygems/public_cert.pem +16 -16
  447. data/test/rubygems/public_cert_32.pem +15 -15
  448. data/test/rubygems/public_key.pem +7 -7
  449. data/test/rubygems/rubygems_plugin.rb +2 -2
  450. data/test/rubygems/simple_gem.rb +1 -1
  451. data/test/rubygems/specifications/rubyforge-0.0.1.gemspec +4 -4
  452. data/test/rubygems/test_bundled_ca.rb +11 -11
  453. data/test/rubygems/test_config.rb +5 -5
  454. data/test/rubygems/test_deprecate.rb +3 -3
  455. data/test/rubygems/test_exit.rb +17 -0
  456. data/test/rubygems/test_gem.rb +367 -757
  457. data/test/rubygems/test_gem_available_set.rb +21 -21
  458. data/test/rubygems/test_gem_bundler_version_finder.rb +27 -47
  459. data/test/rubygems/test_gem_command.rb +45 -45
  460. data/test/rubygems/test_gem_command_manager.rb +124 -27
  461. data/test/rubygems/test_gem_commands_build_command.rb +73 -63
  462. data/test/rubygems/test_gem_commands_cert_command.rb +105 -107
  463. data/test/rubygems/test_gem_commands_check_command.rb +4 -4
  464. data/test/rubygems/test_gem_commands_cleanup_command.rb +40 -40
  465. data/test/rubygems/test_gem_commands_contents_command.rb +28 -28
  466. data/test/rubygems/test_gem_commands_dependency_command.rb +36 -36
  467. data/test/rubygems/test_gem_commands_environment_command.rb +38 -14
  468. data/test/rubygems/test_gem_commands_exec_command.rb +851 -0
  469. data/test/rubygems/test_gem_commands_fetch_command.rb +159 -26
  470. data/test/rubygems/test_gem_commands_generate_index_command.rb +7 -7
  471. data/test/rubygems/test_gem_commands_help_command.rb +13 -13
  472. data/test/rubygems/test_gem_commands_info_command.rb +28 -2
  473. data/test/rubygems/test_gem_commands_install_command.rb +200 -132
  474. data/test/rubygems/test_gem_commands_list_command.rb +4 -4
  475. data/test/rubygems/test_gem_commands_lock_command.rb +10 -10
  476. data/test/rubygems/test_gem_commands_mirror.rb +2 -2
  477. data/test/rubygems/test_gem_commands_open_command.rb +5 -5
  478. data/test/rubygems/test_gem_commands_outdated_command.rb +9 -9
  479. data/test/rubygems/test_gem_commands_owner_command.rb +126 -45
  480. data/test/rubygems/test_gem_commands_pristine_command.rb +141 -92
  481. data/test/rubygems/test_gem_commands_push_command.rb +85 -59
  482. data/test/rubygems/test_gem_commands_query_command.rb +73 -73
  483. data/test/rubygems/test_gem_commands_search_command.rb +2 -2
  484. data/test/rubygems/test_gem_commands_server_command.rb +6 -48
  485. data/test/rubygems/test_gem_commands_setup_command.rb +169 -92
  486. data/test/rubygems/test_gem_commands_signin_command.rb +154 -26
  487. data/test/rubygems/test_gem_commands_signout_command.rb +3 -3
  488. data/test/rubygems/test_gem_commands_sources_command.rb +74 -25
  489. data/test/rubygems/test_gem_commands_specification_command.rb +32 -32
  490. data/test/rubygems/test_gem_commands_stale_command.rb +4 -4
  491. data/test/rubygems/test_gem_commands_uninstall_command.rb +99 -82
  492. data/test/rubygems/test_gem_commands_unpack_command.rb +31 -31
  493. data/test/rubygems/test_gem_commands_update_command.rb +202 -91
  494. data/test/rubygems/test_gem_commands_which_command.rb +6 -6
  495. data/test/rubygems/test_gem_commands_yank_command.rb +43 -43
  496. data/test/rubygems/test_gem_config_file.rb +93 -81
  497. data/test/rubygems/test_gem_dependency.rb +78 -80
  498. data/test/rubygems/test_gem_dependency_installer.rb +165 -165
  499. data/test/rubygems/test_gem_dependency_list.rb +47 -47
  500. data/test/rubygems/test_gem_dependency_resolution_error.rb +4 -4
  501. data/test/rubygems/test_gem_doctor.rb +26 -26
  502. data/test/rubygems/test_gem_ext_builder.rb +60 -62
  503. data/test/rubygems/test_gem_ext_cargo_builder/custom_name/.gitignore +1 -0
  504. data/test/rubygems/test_gem_ext_cargo_builder/custom_name/custom_name.gemspec +8 -0
  505. data/test/rubygems/test_gem_ext_cargo_builder/custom_name/ext/custom_name_lib/Cargo.lock +233 -0
  506. data/test/rubygems/test_gem_ext_cargo_builder/custom_name/ext/custom_name_lib/Cargo.toml +10 -0
  507. data/test/rubygems/test_gem_ext_cargo_builder/custom_name/ext/custom_name_lib/src/lib.rs +27 -0
  508. data/test/rubygems/test_gem_ext_cargo_builder/custom_name/lib/custom_name.rb +1 -0
  509. data/test/rubygems/test_gem_ext_cargo_builder/rust_ruby_example/.gitignore +1 -0
  510. data/test/rubygems/test_gem_ext_cargo_builder/rust_ruby_example/Cargo.lock +247 -0
  511. data/test/rubygems/test_gem_ext_cargo_builder/rust_ruby_example/Cargo.toml +10 -0
  512. data/test/rubygems/test_gem_ext_cargo_builder/rust_ruby_example/rust_ruby_example.gemspec +8 -0
  513. data/test/rubygems/test_gem_ext_cargo_builder/rust_ruby_example/src/lib.rs +51 -0
  514. data/test/rubygems/test_gem_ext_cargo_builder.rb +166 -0
  515. data/test/rubygems/test_gem_ext_cargo_builder_link_flag_converter.rb +33 -0
  516. data/test/rubygems/test_gem_ext_cargo_builder_unit.rb +60 -0
  517. data/test/rubygems/test_gem_ext_cmake_builder.rb +17 -15
  518. data/test/rubygems/test_gem_ext_configure_builder.rb +13 -13
  519. data/test/rubygems/test_gem_ext_ext_conf_builder.rb +53 -50
  520. data/test/rubygems/test_gem_ext_rake_builder.rb +15 -15
  521. data/test/rubygems/test_gem_gem_runner.rb +13 -8
  522. data/test/rubygems/test_gem_gemcutter_utilities.rb +71 -65
  523. data/test/rubygems/test_gem_impossible_dependencies_error.rb +4 -4
  524. data/test/rubygems/test_gem_indexer.rb +90 -67
  525. data/test/rubygems/test_gem_install_update_options.rb +18 -18
  526. data/test/rubygems/test_gem_installer.rb +511 -327
  527. data/test/rubygems/test_gem_local_remote_options.rb +10 -10
  528. data/test/rubygems/test_gem_name_tuple.rb +4 -4
  529. data/test/rubygems/test_gem_package.rb +246 -236
  530. data/test/rubygems/test_gem_package_old.rb +13 -13
  531. data/test/rubygems/test_gem_package_tar_header.rb +47 -47
  532. data/test/rubygems/test_gem_package_tar_reader.rb +55 -8
  533. data/test/rubygems/test_gem_package_tar_reader_entry.rb +161 -16
  534. data/test/rubygems/test_gem_package_tar_writer.rb +76 -76
  535. data/test/rubygems/test_gem_package_task.rb +18 -18
  536. data/test/rubygems/test_gem_path_support.rb +15 -19
  537. data/test/rubygems/test_gem_platform.rb +335 -214
  538. data/test/rubygems/test_gem_rdoc.rb +14 -14
  539. data/test/rubygems/test_gem_remote_fetcher.rb +169 -154
  540. data/test/rubygems/test_gem_request.rb +65 -59
  541. data/test/rubygems/test_gem_request_connection_pools.rb +29 -29
  542. data/test/rubygems/test_gem_request_set.rb +100 -100
  543. data/test/rubygems/test_gem_request_set_gem_dependency_api.rb +209 -211
  544. data/test/rubygems/test_gem_request_set_lockfile.rb +86 -86
  545. data/test/rubygems/test_gem_request_set_lockfile_parser.rb +58 -58
  546. data/test/rubygems/test_gem_request_set_lockfile_tokenizer.rb +62 -62
  547. data/test/rubygems/test_gem_requirement.rb +47 -42
  548. data/test/rubygems/test_gem_resolver.rb +173 -106
  549. data/test/rubygems/test_gem_resolver_activation_request.rb +6 -6
  550. data/test/rubygems/test_gem_resolver_api_set.rb +33 -33
  551. data/test/rubygems/test_gem_resolver_api_specification.rb +47 -47
  552. data/test/rubygems/test_gem_resolver_best_set.rb +22 -22
  553. data/test/rubygems/test_gem_resolver_composed_set.rb +1 -1
  554. data/test/rubygems/test_gem_resolver_conflict.rb +12 -12
  555. data/test/rubygems/test_gem_resolver_dependency_request.rb +15 -15
  556. data/test/rubygems/test_gem_resolver_git_set.rb +21 -21
  557. data/test/rubygems/test_gem_resolver_git_specification.rb +21 -21
  558. data/test/rubygems/test_gem_resolver_index_set.rb +12 -12
  559. data/test/rubygems/test_gem_resolver_index_specification.rb +16 -16
  560. data/test/rubygems/test_gem_resolver_installed_specification.rb +5 -5
  561. data/test/rubygems/test_gem_resolver_installer_set.rb +79 -35
  562. data/test/rubygems/test_gem_resolver_local_specification.rb +7 -7
  563. data/test/rubygems/test_gem_resolver_lock_set.rb +12 -12
  564. data/test/rubygems/test_gem_resolver_lock_specification.rb +17 -17
  565. data/test/rubygems/test_gem_resolver_requirement_list.rb +1 -1
  566. data/test/rubygems/test_gem_resolver_specification.rb +8 -8
  567. data/test/rubygems/test_gem_resolver_vendor_set.rb +6 -6
  568. data/test/rubygems/test_gem_resolver_vendor_specification.rb +10 -10
  569. data/test/rubygems/test_gem_security.rb +69 -69
  570. data/test/rubygems/test_gem_security_policy.rb +72 -72
  571. data/test/rubygems/test_gem_security_signer.rb +34 -34
  572. data/test/rubygems/test_gem_security_trust_dir.rb +6 -6
  573. data/test/rubygems/test_gem_silent_ui.rb +38 -32
  574. data/test/rubygems/test_gem_source.rb +44 -44
  575. data/test/rubygems/test_gem_source_fetch_problem.rb +9 -9
  576. data/test/rubygems/test_gem_source_git.rb +69 -62
  577. data/test/rubygems/test_gem_source_installed.rb +16 -16
  578. data/test/rubygems/test_gem_source_list.rb +5 -5
  579. data/test/rubygems/test_gem_source_local.rb +14 -14
  580. data/test/rubygems/test_gem_source_lock.rb +31 -31
  581. data/test/rubygems/test_gem_source_specific_file.rb +17 -17
  582. data/test/rubygems/test_gem_source_subpath_problem.rb +7 -7
  583. data/test/rubygems/test_gem_source_vendor.rb +13 -13
  584. data/test/rubygems/test_gem_spec_fetcher.rb +72 -72
  585. data/test/rubygems/test_gem_specification.rb +560 -493
  586. data/test/rubygems/test_gem_stream_ui.rb +20 -20
  587. data/test/rubygems/test_gem_stub_specification.rb +32 -48
  588. data/test/rubygems/test_gem_text.rb +7 -1
  589. data/test/rubygems/test_gem_uninstaller.rb +113 -113
  590. data/test/rubygems/test_gem_unsatisfiable_dependency_error.rb +3 -3
  591. data/test/rubygems/test_gem_update_suggestion.rb +208 -0
  592. data/test/rubygems/test_gem_uri.rb +4 -4
  593. data/test/rubygems/test_gem_uri_formatter.rb +14 -14
  594. data/test/rubygems/test_gem_util.rb +23 -23
  595. data/test/rubygems/test_gem_validator.rb +8 -8
  596. data/test/rubygems/test_gem_version.rb +27 -16
  597. data/test/rubygems/test_gem_version_option.rb +15 -15
  598. data/test/rubygems/test_kernel.rb +42 -60
  599. data/test/rubygems/test_project_sanity.rb +2 -2
  600. data/test/rubygems/test_remote_fetch_error.rb +6 -6
  601. data/test/rubygems/test_require.rb +132 -174
  602. data/test/rubygems/test_rubygems.rb +42 -12
  603. data/test/rubygems/utilities.rb +59 -37
  604. data/test/rubygems/wrong_key_cert.pem +15 -15
  605. data/test/rubygems/wrong_key_cert_32.pem +15 -15
  606. data/test/test_changelog_generator.rb +1 -0
  607. metadata +97 -41
  608. data/bundler/lib/bundler/dep_proxy.rb +0 -55
  609. data/bundler/lib/bundler/gemdeps.rb +0 -29
  610. data/bundler/lib/bundler/psyched_yaml.rb +0 -22
  611. data/bundler/lib/bundler/templates/gems.rb +0 -8
  612. data/bundler/lib/bundler/templates/newgem/travis.yml.tt +0 -6
  613. data/bundler/lib/bundler/vendor/molinillo/LICENSE +0 -9
  614. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/delegates/resolution_state.rb +0 -57
  615. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/delegates/specification_provider.rb +0 -88
  616. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/action.rb +0 -36
  617. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/add_edge_no_circular.rb +0 -66
  618. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/add_vertex.rb +0 -62
  619. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/delete_edge.rb +0 -63
  620. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/detach_vertex_named.rb +0 -61
  621. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/log.rb +0 -126
  622. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/set_payload.rb +0 -46
  623. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/tag.rb +0 -36
  624. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/vertex.rb +0 -164
  625. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph.rb +0 -255
  626. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/errors.rb +0 -143
  627. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/gem_metadata.rb +0 -6
  628. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/modules/specification_provider.rb +0 -112
  629. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/modules/ui.rb +0 -67
  630. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/resolution.rb +0 -839
  631. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/resolver.rb +0 -46
  632. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/state.rb +0 -58
  633. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo.rb +0 -11
  634. data/bundler/lib/bundler/vendor/tmpdir/lib/tmpdir.rb +0 -154
  635. data/bundler/lib/bundler/version_ranges.rb +0 -122
  636. data/lib/rubygems/psych_additions.rb +0 -10
  637. data/lib/rubygems/server.rb +0 -882
  638. data/test/rubygems/bogussources.rb +0 -9
  639. data/test/rubygems/data/null-type.gemspec.rz +0 -0
  640. data/test/rubygems/test_gem_server.rb +0 -608
  641. /data/bundler/lib/bundler/templates/newgem/ext/newgem/{extconf.rb.tt → extconf-c.rb.tt} +0 -0
@@ -1,13 +1,13 @@
1
1
  # frozen_string_literal: true
2
- require_relative '../command'
3
- require_relative '../command_manager'
4
- require_relative '../dependency_installer'
5
- require_relative '../install_update_options'
6
- require_relative '../local_remote_options'
7
- require_relative '../spec_fetcher'
8
- require_relative '../version_option'
9
- require_relative '../install_message' # must come before rdoc for messaging
10
- require_relative '../rdoc'
2
+ require_relative "../command"
3
+ require_relative "../command_manager"
4
+ require_relative "../dependency_installer"
5
+ require_relative "../install_update_options"
6
+ require_relative "../local_remote_options"
7
+ require_relative "../spec_fetcher"
8
+ require_relative "../version_option"
9
+ require_relative "../install_message" # must come before rdoc for messaging
10
+ require_relative "../rdoc"
11
11
 
12
12
  class Gem::Commands::UpdateCommand < Gem::Command
13
13
  include Gem::InstallUpdateOptions
@@ -19,20 +19,24 @@ class Gem::Commands::UpdateCommand < Gem::Command
19
19
  attr_reader :updated # :nodoc:
20
20
 
21
21
  def initialize
22
- super 'update', 'Update installed gems to the latest version',
23
- :document => %w[rdoc ri],
24
- :force => false
22
+ options = {
23
+ :force => false,
24
+ }
25
+
26
+ options.merge!(install_update_options)
27
+
28
+ super "update", "Update installed gems to the latest version", options
25
29
 
26
30
  add_install_update_options
27
31
 
28
- OptionParser.accept Gem::Version do |value|
32
+ Gem::OptionParser.accept Gem::Version do |value|
29
33
  Gem::Version.new value
30
34
 
31
35
  value
32
36
  end
33
37
 
34
- add_option('--system [VERSION]', Gem::Version,
35
- 'Update the RubyGems system software') do |value, options|
38
+ add_option("--system [VERSION]", Gem::Version,
39
+ "Update the RubyGems system software") do |value, options|
36
40
  value = true unless value
37
41
 
38
42
  options[:system] = value
@@ -51,7 +55,8 @@ class Gem::Commands::UpdateCommand < Gem::Command
51
55
  end
52
56
 
53
57
  def defaults_str # :nodoc:
54
- "--document --no-force --install-dir #{Gem.dir}"
58
+ "--no-force --install-dir #{Gem.dir}\n" +
59
+ install_update_defaults_str
55
60
  end
56
61
 
57
62
  def description # :nodoc:
@@ -113,15 +118,19 @@ command to remove old versions.
113
118
 
114
119
  updated = update_gems gems_to_update
115
120
 
121
+ installed_names = highest_installed_gems.keys
116
122
  updated_names = updated.map {|spec| spec.name }
117
123
  not_updated_names = options[:args].uniq - updated_names
124
+ not_installed_names = not_updated_names - installed_names
125
+ up_to_date_names = not_updated_names - not_installed_names
118
126
 
119
127
  if updated.empty?
120
128
  say "Nothing to update"
121
129
  else
122
130
  say "Gems updated: #{updated_names.join(' ')}"
123
- say "Gems already up-to-date: #{not_updated_names.join(' ')}" unless not_updated_names.empty?
124
131
  end
132
+ say "Gems already up-to-date: #{up_to_date_names.join(' ')}" unless up_to_date_names.empty?
133
+ say "Gems not currently installed: #{not_installed_names.join(' ')}" unless not_installed_names.empty?
125
134
  end
126
135
 
127
136
  def fetch_remote_gems(spec) # :nodoc:
@@ -146,7 +155,7 @@ command to remove old versions.
146
155
  Gem::Specification.dirs = Gem.user_dir if options[:user_install]
147
156
 
148
157
  Gem::Specification.each do |spec|
149
- if hig[spec.name].nil? or hig[spec.name].version < spec.version
158
+ if hig[spec.name].nil? || hig[spec.name].version < spec.version
150
159
  hig[spec.name] = spec
151
160
  end
152
161
  end
@@ -157,27 +166,23 @@ command to remove old versions.
157
166
  def highest_remote_name_tuple(spec) # :nodoc:
158
167
  spec_tuples = fetch_remote_gems spec
159
168
 
160
- matching_gems = spec_tuples.select do |g,_|
161
- g.name == spec.name and g.match_platform?
162
- end
163
-
164
- highest_remote_gem = matching_gems.max
165
-
166
- highest_remote_gem ||= [Gem::NameTuple.null]
169
+ highest_remote_gem = spec_tuples.max
170
+ return unless highest_remote_gem
167
171
 
168
172
  highest_remote_gem.first
169
173
  end
170
174
 
171
- def install_rubygems(version) # :nodoc:
175
+ def install_rubygems(spec) # :nodoc:
172
176
  args = update_rubygems_arguments
177
+ version = spec.version
173
178
 
174
- update_dir = File.join Gem.dir, 'gems', "rubygems-update-#{version}"
179
+ update_dir = File.join spec.base_dir, "gems", "rubygems-update-#{version}"
175
180
 
176
181
  Dir.chdir update_dir do
177
182
  say "Installing RubyGems #{version}" unless options[:silent]
178
183
 
179
184
  installed = preparing_gem_layout_for(version) do
180
- system Gem.ruby, '--disable-gems', 'setup.rb', *args
185
+ system Gem.ruby, "--disable-gems", "setup.rb", *args
181
186
  end
182
187
 
183
188
  say "RubyGems system software updated" if installed unless options[:silent]
@@ -208,30 +213,22 @@ command to remove old versions.
208
213
  version = options[:system]
209
214
  update_latest = version == true
210
215
 
211
- if update_latest
212
- version = Gem::Version.new Gem::VERSION
213
- requirement = Gem::Requirement.new ">= #{Gem::VERSION}"
214
- else
216
+ unless update_latest
215
217
  version = Gem::Version.new version
216
218
  requirement = Gem::Requirement.new version
219
+
220
+ return version, requirement
217
221
  end
218
222
 
223
+ version = Gem::Version.new Gem::VERSION
224
+ requirement = Gem::Requirement.new ">= #{Gem::VERSION}"
225
+
219
226
  rubygems_update = Gem::Specification.new
220
- rubygems_update.name = 'rubygems-update'
227
+ rubygems_update.name = "rubygems-update"
221
228
  rubygems_update.version = version
222
229
 
223
- hig = {
224
- 'rubygems-update' => rubygems_update,
225
- }
226
-
227
- gems_to_update = which_to_update hig, options[:args], :system
228
- up_ver = gems_to_update.first.version
229
-
230
- target = if update_latest
231
- up_ver
232
- else
233
- version
234
- end
230
+ highest_remote_tup = highest_remote_name_tuple(rubygems_update)
231
+ target = highest_remote_tup ? highest_remote_tup.version : version
235
232
 
236
233
  return target, requirement
237
234
  end
@@ -281,40 +278,36 @@ command to remove old versions.
281
278
 
282
279
  check_oldest_rubygems version
283
280
 
284
- update_gem 'rubygems-update', version
281
+ installed_gems = Gem::Specification.find_all_by_name "rubygems-update", requirement
282
+ installed_gems = update_gem("rubygems-update", version) if installed_gems.empty? || installed_gems.first.version != version
283
+ return if installed_gems.empty?
285
284
 
286
- installed_gems = Gem::Specification.find_all_by_name 'rubygems-update', requirement
287
- version = installed_gems.first.version
288
-
289
- install_rubygems version
285
+ install_rubygems installed_gems.first
290
286
  end
291
287
 
292
288
  def update_rubygems_arguments # :nodoc:
293
289
  args = []
294
- args << '--silent' if options[:silent]
295
- args << '--prefix' << Gem.prefix if Gem.prefix
296
- args << '--no-document' unless options[:document].include?('rdoc') || options[:document].include?('ri')
297
- args << '--no-format-executable' if options[:no_format_executable]
298
- args << '--previous-version' << Gem::VERSION if
299
- options[:system] == true or
300
- Gem::Version.new(options[:system]) >= Gem::Version.new(2)
290
+ args << "--silent" if options[:silent]
291
+ args << "--prefix" << Gem.prefix if Gem.prefix
292
+ args << "--no-document" unless options[:document].include?("rdoc") || options[:document].include?("ri")
293
+ args << "--no-format-executable" if options[:no_format_executable]
294
+ args << "--previous-version" << Gem::VERSION if
295
+ options[:system] == true ||
296
+ Gem::Version.new(options[:system]) >= Gem::Version.new(2)
301
297
  args
302
298
  end
303
299
 
304
- def which_to_update(highest_installed_gems, gem_names, system = false)
300
+ def which_to_update(highest_installed_gems, gem_names)
305
301
  result = []
306
302
 
307
303
  highest_installed_gems.each do |l_name, l_spec|
308
- next if not gem_names.empty? and
304
+ next if !gem_names.empty? &&
309
305
  gem_names.none? {|name| name == l_spec.name }
310
306
 
311
307
  highest_remote_tup = highest_remote_name_tuple l_spec
312
- highest_remote_ver = highest_remote_tup.version
313
- highest_installed_ver = l_spec.version
308
+ next unless highest_remote_tup
314
309
 
315
- if system or (highest_installed_ver < highest_remote_ver)
316
- result << Gem::NameTuple.new(l_spec.name, [highest_installed_ver, highest_remote_ver].max, highest_remote_tup.platform)
317
- end
310
+ result << highest_remote_tup
318
311
  end
319
312
 
320
313
  result
@@ -330,18 +323,14 @@ command to remove old versions.
330
323
  #
331
324
  def oldest_supported_version
332
325
  @oldest_supported_version ||=
333
- if Gem.ruby_version > Gem::Version.new("3.0.a")
326
+ if Gem.ruby_version > Gem::Version.new("3.1.a")
327
+ Gem::Version.new("3.3.3")
328
+ elsif Gem.ruby_version > Gem::Version.new("3.0.a")
334
329
  Gem::Version.new("3.2.3")
335
330
  elsif Gem.ruby_version > Gem::Version.new("2.7.a")
336
331
  Gem::Version.new("3.1.2")
337
- elsif Gem.ruby_version > Gem::Version.new("2.6.a")
338
- Gem::Version.new("3.0.1")
339
- elsif Gem.ruby_version > Gem::Version.new("2.5.a")
340
- Gem::Version.new("2.7.3")
341
- elsif Gem.ruby_version > Gem::Version.new("2.4.a")
342
- Gem::Version.new("2.6.8")
343
332
  else
344
- Gem::Version.new("2.5.2")
333
+ Gem::Version.new("3.0.1")
345
334
  end
346
335
  end
347
336
  end
@@ -1,17 +1,17 @@
1
1
  # frozen_string_literal: true
2
- require_relative '../command'
2
+ require_relative "../command"
3
3
 
4
4
  class Gem::Commands::WhichCommand < Gem::Command
5
5
  def initialize
6
- super 'which', 'Find the location of a library file you can require',
6
+ super "which", "Find the location of a library file you can require",
7
7
  :search_gems_first => false, :show_all => false
8
8
 
9
- add_option '-a', '--[no-]all', 'show all matching files' do |show_all, options|
9
+ add_option "-a", "--[no-]all", "show all matching files" do |show_all, options|
10
10
  options[:show_all] = show_all
11
11
  end
12
12
 
13
- add_option '-g', '--[no-]gems-first',
14
- 'search gems before non-gems' do |gems_first, options|
13
+ add_option "-g", "--[no-]gems-first",
14
+ "search gems before non-gems" do |gems_first, options|
15
15
  options[:search_gems_first] = gems_first
16
16
  end
17
17
  end
@@ -39,7 +39,7 @@ requiring to see why it does not behave as you expect.
39
39
  found = true
40
40
 
41
41
  options[:args].each do |arg|
42
- arg = arg.sub(/#{Regexp.union(*Gem.suffixes)}$/, '')
42
+ arg = arg.sub(/#{Regexp.union(*Gem.suffixes)}$/, "")
43
43
  dirs = $LOAD_PATH
44
44
 
45
45
  spec = Gem::Specification.find_by_path arg
@@ -71,7 +71,7 @@ requiring to see why it does not behave as you expect.
71
71
  dirs.each do |dir|
72
72
  Gem.suffixes.each do |ext|
73
73
  full_path = File.join dir, "#{package_name}#{ext}"
74
- if File.exist? full_path and not File.directory? full_path
74
+ if File.exist?(full_path) && !File.directory?(full_path)
75
75
  result << full_path
76
76
  return result unless options[:show_all]
77
77
  end
@@ -1,8 +1,8 @@
1
1
  # frozen_string_literal: true
2
- require_relative '../command'
3
- require_relative '../local_remote_options'
4
- require_relative '../version_option'
5
- require_relative '../gemcutter_utilities'
2
+ require_relative "../command"
3
+ require_relative "../local_remote_options"
4
+ require_relative "../version_option"
5
+ require_relative "../gemcutter_utilities"
6
6
 
7
7
  class Gem::Commands::YankCommand < Gem::Command
8
8
  include Gem::LocalRemoteOptions
@@ -28,15 +28,15 @@ data you will need to change them immediately and yank your gem.
28
28
  end
29
29
 
30
30
  def initialize
31
- super 'yank', 'Remove a pushed gem from the index'
31
+ super "yank", "Remove a pushed gem from the index"
32
32
 
33
33
  add_version_option("remove")
34
34
  add_platform_option("remove")
35
35
  add_otp_option
36
36
 
37
- add_option('--host HOST',
38
- 'Yank from another gemcutter-compatible host',
39
- ' (e.g. https://rubygems.org)') do |value, options|
37
+ add_option("--host HOST",
38
+ "Yank from another gemcutter-compatible host",
39
+ " (e.g. https://rubygems.org)") do |value, options|
40
40
  options[:host] = value
41
41
  end
42
42
 
@@ -76,10 +76,10 @@ data you will need to change them immediately and yank your gem.
76
76
  request.add_field("Authorization", api_key)
77
77
 
78
78
  data = {
79
- 'gem_name' => name,
80
- 'version' => version,
79
+ "gem_name" => name,
80
+ "version" => version,
81
81
  }
82
- data['platform'] = platform if platform
82
+ data["platform"] = platform if platform
83
83
 
84
84
  request.set_form_data data
85
85
  end
@@ -1,5 +1,4 @@
1
1
  # frozen_string_literal: true
2
- # :stopdoc:
3
2
 
4
3
  #--
5
4
  # This file contains all sorts of little compatibility hacks that we've
@@ -8,10 +7,13 @@
8
7
  #
9
8
  # Ruby 1.9.x has introduced some things that are awkward, and we need to
10
9
  # support them, so we define some constants to use later.
10
+ #
11
+ # TODO remove at RubyGems 4
11
12
  #++
12
13
 
13
- # TODO remove at RubyGems 4
14
14
  module Gem
15
+ # :stopdoc:
16
+
15
17
  RubyGemsVersion = VERSION
16
18
  deprecate_constant(:RubyGemsVersion)
17
19
 
@@ -5,8 +5,8 @@
5
5
  # See LICENSE.txt for permissions.
6
6
  #++
7
7
 
8
- require_relative 'user_interaction'
9
- require 'rbconfig'
8
+ require_relative "user_interaction"
9
+ require "rbconfig"
10
10
 
11
11
  ##
12
12
  # Gem::ConfigFile RubyGems options and gem command options from gemrc.
@@ -39,7 +39,7 @@ require 'rbconfig'
39
39
  class Gem::ConfigFile
40
40
  include Gem::UserInteraction
41
41
 
42
- DEFAULT_BACKTRACE = false
42
+ DEFAULT_BACKTRACE = true
43
43
  DEFAULT_BULK_THRESHOLD = 1000
44
44
  DEFAULT_VERBOSITY = true
45
45
  DEFAULT_UPDATE_SOURCES = true
@@ -71,7 +71,7 @@ class Gem::ConfigFile
71
71
 
72
72
  # :startdoc:
73
73
 
74
- SYSTEM_WIDE_CONFIG_FILE = File.join SYSTEM_CONFIG_PATH, 'gemrc'
74
+ SYSTEM_WIDE_CONFIG_FILE = File.join SYSTEM_CONFIG_PATH, "gemrc"
75
75
 
76
76
  ##
77
77
  # List of arguments supplied to the config file object.
@@ -182,20 +182,20 @@ class Gem::ConfigFile
182
182
  @update_sources = DEFAULT_UPDATE_SOURCES
183
183
  @concurrent_downloads = DEFAULT_CONCURRENT_DOWNLOADS
184
184
  @cert_expiration_length_days = DEFAULT_CERT_EXPIRATION_LENGTH_DAYS
185
- @ipv4_fallback_enabled = ENV['IPV4_FALLBACK_ENABLED'] == 'true' || DEFAULT_IPV4_FALLBACK_ENABLED
185
+ @ipv4_fallback_enabled = ENV["IPV4_FALLBACK_ENABLED"] == "true" || DEFAULT_IPV4_FALLBACK_ENABLED
186
186
 
187
187
  operating_system_config = Marshal.load Marshal.dump(OPERATING_SYSTEM_DEFAULTS)
188
188
  platform_config = Marshal.load Marshal.dump(PLATFORM_DEFAULTS)
189
189
  system_config = load_file SYSTEM_WIDE_CONFIG_FILE
190
190
  user_config = load_file config_file_name.dup.tap(&Gem::UNTAINT)
191
191
 
192
- environment_config = (ENV['GEMRC'] || '')
192
+ environment_config = (ENV["GEMRC"] || "")
193
193
  .split(File::PATH_SEPARATOR).inject({}) do |result, file|
194
194
  result.merge load_file file
195
195
  end
196
196
 
197
197
  @hash = operating_system_config.merge platform_config
198
- unless args.index '--norc'
198
+ unless args.index "--norc"
199
199
  @hash = @hash.merge system_config
200
200
  @hash = @hash.merge user_config
201
201
  @hash = @hash.merge environment_config
@@ -269,7 +269,7 @@ if you believe they were disclosed to a third party.
269
269
  # Location of RubyGems.org credentials
270
270
 
271
271
  def credentials_path
272
- credentials = File.join Gem.user_home, '.gem', 'credentials'
272
+ credentials = File.join Gem.user_home, ".gem", "credentials"
273
273
  if File.exist? credentials
274
274
  credentials
275
275
  else
@@ -281,10 +281,10 @@ if you believe they were disclosed to a third party.
281
281
  check_credentials_permissions
282
282
 
283
283
  @api_keys = if File.exist? credentials_path
284
- load_file(credentials_path)
285
- else
286
- @hash
287
- end
284
+ load_file(credentials_path)
285
+ else
286
+ @hash
287
+ end
288
288
 
289
289
  if @api_keys.key? :rubygems_api_key
290
290
  @rubygems_api_key = @api_keys[:rubygems_api_key]
@@ -320,13 +320,13 @@ if you believe they were disclosed to a third party.
320
320
  config = load_file(credentials_path).merge(host => api_key)
321
321
 
322
322
  dirname = File.dirname credentials_path
323
- require 'fileutils'
323
+ require "fileutils"
324
324
  FileUtils.mkdir_p(dirname)
325
325
 
326
326
  Gem.load_yaml
327
327
 
328
328
  permissions = 0600 & (~File.umask)
329
- File.open(credentials_path, 'w', permissions) do |f|
329
+ File.open(credentials_path, "w", permissions) do |f|
330
330
  f.write config.to_yaml
331
331
  end
332
332
 
@@ -368,7 +368,21 @@ if you believe they were disclosed to a third party.
368
368
 
369
369
  # True if the backtrace option has been specified, or debug is on.
370
370
  def backtrace
371
- @backtrace or $DEBUG
371
+ @backtrace || $DEBUG
372
+ end
373
+
374
+ # Check state file is writable. Creates empty file if not present to ensure we can write to it.
375
+ def state_file_writable?
376
+ if File.exist?(state_file_name)
377
+ File.writable?(state_file_name)
378
+ else
379
+ require "fileutils"
380
+ FileUtils.mkdir_p File.dirname(state_file_name)
381
+ File.open(state_file_name, "w") {}
382
+ true
383
+ end
384
+ rescue Errno::EACCES
385
+ false
372
386
  end
373
387
 
374
388
  # The name of the configuration file.
@@ -376,6 +390,25 @@ if you believe they were disclosed to a third party.
376
390
  @config_file_name || Gem.config_file
377
391
  end
378
392
 
393
+ # The name of the state file.
394
+ def state_file_name
395
+ Gem.state_file
396
+ end
397
+
398
+ # Reads time of last update check from state file
399
+ def last_update_check
400
+ if File.readable?(state_file_name)
401
+ File.read(state_file_name).to_i
402
+ else
403
+ 0
404
+ end
405
+ end
406
+
407
+ # Writes time of last update check to state file
408
+ def last_update_check=(timestamp)
409
+ File.write(state_file_name, timestamp.to_s) if state_file_writable?
410
+ end
411
+
379
412
  # Delegates to @hash
380
413
  def each(&block)
381
414
  hash = @hash.dup
@@ -389,7 +422,7 @@ if you believe they were disclosed to a third party.
389
422
  yield :backtrace, @backtrace
390
423
  yield :bulk_threshold, @bulk_threshold
391
424
 
392
- yield 'config_file_name', @config_file_name if @config_file_name
425
+ yield "config_file_name", @config_file_name if @config_file_name
393
426
 
394
427
  hash.each(&block)
395
428
  end
@@ -405,7 +438,7 @@ if you believe they were disclosed to a third party.
405
438
  when /^--debug$/ then
406
439
  $DEBUG = true
407
440
 
408
- warn 'NOTE: Debugging mode prints all exceptions even when rescued'
441
+ warn "NOTE: Debugging mode prints all exceptions even when rescued"
409
442
  else
410
443
  @args << arg
411
444
  end
@@ -444,7 +477,7 @@ if you believe they were disclosed to a third party.
444
477
  @hash[:ssl_client_cert] if @hash.key? :ssl_client_cert
445
478
 
446
479
  keys = yaml_hash.keys.map {|key| key.to_s }
447
- keys << 'debug'
480
+ keys << "debug"
448
481
  re = Regexp.union(*keys)
449
482
 
450
483
  @hash.each do |key, value|
@@ -458,10 +491,10 @@ if you believe they were disclosed to a third party.
458
491
 
459
492
  # Writes out this config file, replacing its source.
460
493
  def write
461
- require 'fileutils'
494
+ require "fileutils"
462
495
  FileUtils.mkdir_p File.dirname(config_file_name)
463
496
 
464
- File.open config_file_name, 'w' do |io|
497
+ File.open config_file_name, "w" do |io|
465
498
  io.write to_yaml
466
499
  end
467
500
  end
@@ -477,11 +510,11 @@ if you believe they were disclosed to a third party.
477
510
  end
478
511
 
479
512
  def ==(other) # :nodoc:
480
- self.class === other and
481
- @backtrace == other.backtrace and
482
- @bulk_threshold == other.bulk_threshold and
483
- @verbose == other.verbose and
484
- @update_sources == other.update_sources and
513
+ self.class === other &&
514
+ @backtrace == other.backtrace &&
515
+ @bulk_threshold == other.bulk_threshold &&
516
+ @verbose == other.verbose &&
517
+ @update_sources == other.update_sources &&
485
518
  @hash == other.hash
486
519
  end
487
520
 
@@ -1,9 +1,4 @@
1
1
  # frozen_string_literal: true
2
- ##
3
- # RubyGems adds the #gem method to allow activation of specific gem versions
4
- # and overrides the #require method on Kernel to make gems appear as if they
5
- # live on the <code>$LOAD_PATH</code>. See the documentation of these methods
6
- # for further detail.
7
2
 
8
3
  module Kernel
9
4
 
@@ -39,7 +34,7 @@ module Kernel
39
34
  # GEM_SKIP=libA:libB ruby -I../libA -I../libB ./mycode.rb
40
35
 
41
36
  def gem(gem_name, *requirements) # :doc:
42
- skip_list = (ENV['GEM_SKIP'] || "").split(/:/)
37
+ skip_list = (ENV["GEM_SKIP"] || "").split(/:/)
43
38
  raise Gem::LoadError, "skipping #{gem_name}" if skip_list.include? gem_name
44
39
 
45
40
  if gem_name.kind_of? Gem::Dependency