rubygems-update 2.7.10 → 3.0.0

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of rubygems-update might be problematic. Click here for more details.

Files changed (345) hide show
  1. checksums.yaml +4 -4
  2. data/.rubocop.yml +66 -0
  3. data/.travis.yml +22 -18
  4. data/CONTRIBUTING.md +141 -0
  5. data/History.txt +291 -14
  6. data/MAINTAINERS.txt +1 -0
  7. data/Manifest.txt +13 -9
  8. data/POLICIES.md +92 -0
  9. data/README.md +47 -26
  10. data/Rakefile +47 -207
  11. data/{UPGRADING.rdoc → UPGRADING.md} +31 -32
  12. data/appveyor.yml +20 -45
  13. data/bin/gem +1 -2
  14. data/bin/update_rubygems +2 -3
  15. data/bundler/CHANGELOG.md +54 -0
  16. data/bundler/bundler.gemspec +7 -1
  17. data/bundler/lib/bundler.rb +26 -8
  18. data/bundler/lib/bundler/build_metadata.rb +2 -2
  19. data/bundler/lib/bundler/cli.rb +63 -21
  20. data/bundler/lib/bundler/cli/add.rb +15 -5
  21. data/bundler/lib/bundler/cli/binstubs.rb +8 -2
  22. data/bundler/lib/bundler/cli/doctor.rb +47 -1
  23. data/bundler/lib/bundler/cli/install.rb +8 -5
  24. data/bundler/lib/bundler/cli/list.rb +41 -5
  25. data/bundler/lib/bundler/cli/outdated.rb +7 -1
  26. data/bundler/lib/bundler/cli/pristine.rb +4 -0
  27. data/bundler/lib/bundler/cli/remove.rb +18 -0
  28. data/bundler/lib/bundler/definition.rb +15 -16
  29. data/bundler/lib/bundler/dependency.rb +2 -2
  30. data/bundler/lib/bundler/dsl.rb +19 -3
  31. data/bundler/lib/bundler/feature_flag.rb +7 -0
  32. data/bundler/lib/bundler/gem_version_promoter.rb +4 -2
  33. data/bundler/lib/bundler/injector.rb +168 -9
  34. data/bundler/lib/bundler/installer.rb +29 -6
  35. data/bundler/lib/bundler/installer/parallel_installer.rb +5 -0
  36. data/bundler/lib/bundler/plugin.rb +10 -3
  37. data/bundler/lib/bundler/plugin/events.rb +61 -0
  38. data/bundler/lib/bundler/resolver.rb +2 -2
  39. data/bundler/lib/bundler/runtime.rb +8 -2
  40. data/bundler/lib/bundler/settings.rb +24 -3
  41. data/bundler/lib/bundler/settings/validator.rb +23 -0
  42. data/bundler/lib/bundler/shared_helpers.rb +19 -3
  43. data/bundler/lib/bundler/source.rb +9 -9
  44. data/bundler/lib/bundler/templates/newgem/lib/newgem.rb.tt +1 -0
  45. data/bundler/lib/bundler/version.rb +1 -1
  46. data/bundler/man/bundle-add.ronn +13 -2
  47. data/bundler/man/bundle-config.ronn +21 -0
  48. data/bundler/man/bundle-install.ronn +1 -1
  49. data/bundler/man/bundle-list.ronn +19 -1
  50. data/bundler/man/bundle-outdated.ronn +4 -0
  51. data/bundler/man/bundle-remove.ronn +23 -0
  52. data/bundler/man/bundle-update.ronn +1 -1
  53. data/lib/rubygems.rb +70 -96
  54. data/lib/rubygems/available_set.rb +1 -1
  55. data/lib/rubygems/basic_specification.rb +12 -12
  56. data/lib/rubygems/bundler_version_finder.rb +3 -3
  57. data/lib/rubygems/command.rb +22 -15
  58. data/lib/rubygems/command_manager.rb +20 -11
  59. data/lib/rubygems/commands/build_command.rb +27 -8
  60. data/lib/rubygems/commands/cert_command.rb +45 -24
  61. data/lib/rubygems/commands/check_command.rb +1 -1
  62. data/lib/rubygems/commands/cleanup_command.rb +14 -7
  63. data/lib/rubygems/commands/contents_command.rb +14 -15
  64. data/lib/rubygems/commands/dependency_command.rb +17 -17
  65. data/lib/rubygems/commands/environment_command.rb +20 -1
  66. data/lib/rubygems/commands/fetch_command.rb +2 -3
  67. data/lib/rubygems/commands/generate_index_command.rb +2 -3
  68. data/lib/rubygems/commands/help_command.rb +12 -13
  69. data/lib/rubygems/commands/info_command.rb +33 -0
  70. data/lib/rubygems/commands/install_command.rb +21 -17
  71. data/lib/rubygems/commands/list_command.rb +0 -1
  72. data/lib/rubygems/commands/lock_command.rb +3 -4
  73. data/lib/rubygems/commands/open_command.rb +16 -10
  74. data/lib/rubygems/commands/owner_command.rb +20 -11
  75. data/lib/rubygems/commands/pristine_command.rb +23 -16
  76. data/lib/rubygems/commands/push_command.rb +17 -8
  77. data/lib/rubygems/commands/query_command.rb +24 -24
  78. data/lib/rubygems/commands/rdoc_command.rb +3 -4
  79. data/lib/rubygems/commands/search_command.rb +0 -1
  80. data/lib/rubygems/commands/server_command.rb +1 -2
  81. data/lib/rubygems/commands/setup_command.rb +78 -38
  82. data/lib/rubygems/commands/signin_command.rb +2 -1
  83. data/lib/rubygems/commands/signout_command.rb +2 -2
  84. data/lib/rubygems/commands/sources_command.rb +11 -12
  85. data/lib/rubygems/commands/specification_command.rb +7 -7
  86. data/lib/rubygems/commands/uninstall_command.rb +41 -19
  87. data/lib/rubygems/commands/unpack_command.rb +16 -7
  88. data/lib/rubygems/commands/update_command.rb +28 -23
  89. data/lib/rubygems/commands/which_command.rb +4 -5
  90. data/lib/rubygems/commands/yank_command.rb +1 -2
  91. data/lib/rubygems/compatibility.rb +1 -21
  92. data/lib/rubygems/config_file.rb +36 -36
  93. data/lib/rubygems/core_ext/kernel_require.rb +6 -6
  94. data/lib/rubygems/core_ext/kernel_warn.rb +45 -0
  95. data/lib/rubygems/defaults.rb +31 -12
  96. data/lib/rubygems/dependency.rb +14 -14
  97. data/lib/rubygems/dependency_installer.rb +29 -31
  98. data/lib/rubygems/dependency_list.rb +8 -9
  99. data/lib/rubygems/deprecate.rb +2 -3
  100. data/lib/rubygems/doctor.rb +5 -6
  101. data/lib/rubygems/errors.rb +3 -3
  102. data/lib/rubygems/exceptions.rb +11 -4
  103. data/lib/rubygems/ext.rb +0 -1
  104. data/lib/rubygems/ext/build_error.rb +0 -1
  105. data/lib/rubygems/ext/builder.rb +50 -23
  106. data/lib/rubygems/ext/cmake_builder.rb +2 -2
  107. data/lib/rubygems/ext/configure_builder.rb +2 -3
  108. data/lib/rubygems/ext/ext_conf_builder.rb +8 -7
  109. data/lib/rubygems/ext/rake_builder.rb +16 -18
  110. data/lib/rubygems/gem_runner.rb +2 -2
  111. data/lib/rubygems/gemcutter_utilities.rb +40 -13
  112. data/lib/rubygems/indexer.rb +19 -12
  113. data/lib/rubygems/install_default_message.rb +0 -1
  114. data/lib/rubygems/install_message.rb +0 -1
  115. data/lib/rubygems/install_update_options.rb +2 -28
  116. data/lib/rubygems/installer.rb +95 -75
  117. data/lib/rubygems/installer_test_case.rb +0 -14
  118. data/lib/rubygems/local_remote_options.rb +5 -4
  119. data/lib/rubygems/mock_gem_ui.rb +3 -4
  120. data/lib/rubygems/name_tuple.rb +4 -4
  121. data/lib/rubygems/package.rb +90 -73
  122. data/lib/rubygems/package/digest_io.rb +3 -4
  123. data/lib/rubygems/package/file_source.rb +3 -4
  124. data/lib/rubygems/package/io_source.rb +1 -2
  125. data/lib/rubygems/package/old.rb +8 -16
  126. data/lib/rubygems/package/source.rb +0 -1
  127. data/lib/rubygems/package/tar_header.rb +2 -2
  128. data/lib/rubygems/package/tar_reader.rb +2 -4
  129. data/lib/rubygems/package/tar_reader/entry.rb +20 -4
  130. data/lib/rubygems/package/tar_test_case.rb +2 -8
  131. data/lib/rubygems/package/tar_writer.rb +13 -15
  132. data/lib/rubygems/package_task.rb +0 -1
  133. data/lib/rubygems/path_support.rb +16 -6
  134. data/lib/rubygems/platform.rb +4 -5
  135. data/lib/rubygems/psych_tree.rb +1 -1
  136. data/lib/rubygems/rdoc.rb +0 -311
  137. data/lib/rubygems/remote_fetcher.rb +34 -48
  138. data/lib/rubygems/request.rb +16 -15
  139. data/lib/rubygems/request/connection_pools.rb +24 -13
  140. data/lib/rubygems/request/http_pool.rb +3 -4
  141. data/lib/rubygems/request/https_pool.rb +1 -3
  142. data/lib/rubygems/request_set.rb +52 -25
  143. data/lib/rubygems/request_set/gem_dependency_api.rb +36 -40
  144. data/lib/rubygems/request_set/lockfile.rb +12 -12
  145. data/lib/rubygems/request_set/lockfile/parser.rb +18 -29
  146. data/lib/rubygems/request_set/lockfile/tokenizer.rb +9 -9
  147. data/lib/rubygems/requirement.rb +16 -16
  148. data/lib/rubygems/resolver.rb +10 -15
  149. data/lib/rubygems/resolver/activation_request.rb +6 -6
  150. data/lib/rubygems/resolver/api_set.rb +5 -6
  151. data/lib/rubygems/resolver/api_specification.rb +2 -3
  152. data/lib/rubygems/resolver/best_set.rb +5 -6
  153. data/lib/rubygems/resolver/composed_set.rb +5 -6
  154. data/lib/rubygems/resolver/conflict.rb +5 -5
  155. data/lib/rubygems/resolver/current_set.rb +1 -2
  156. data/lib/rubygems/resolver/dependency_request.rb +4 -4
  157. data/lib/rubygems/resolver/git_set.rb +5 -6
  158. data/lib/rubygems/resolver/git_specification.rb +4 -5
  159. data/lib/rubygems/resolver/index_set.rb +5 -6
  160. data/lib/rubygems/resolver/index_specification.rb +3 -4
  161. data/lib/rubygems/resolver/installed_specification.rb +3 -4
  162. data/lib/rubygems/resolver/installer_set.rb +12 -12
  163. data/lib/rubygems/resolver/local_specification.rb +1 -2
  164. data/lib/rubygems/resolver/lock_set.rb +5 -6
  165. data/lib/rubygems/resolver/lock_specification.rb +7 -8
  166. data/lib/rubygems/resolver/requirement_list.rb +1 -1
  167. data/lib/rubygems/resolver/set.rb +2 -2
  168. data/lib/rubygems/resolver/source_set.rb +4 -5
  169. data/lib/rubygems/resolver/spec_specification.rb +1 -2
  170. data/lib/rubygems/resolver/specification.rb +10 -7
  171. data/lib/rubygems/resolver/stats.rb +1 -1
  172. data/lib/rubygems/resolver/vendor_set.rb +4 -5
  173. data/lib/rubygems/resolver/vendor_specification.rb +2 -3
  174. data/lib/rubygems/safe_yaml.rb +18 -10
  175. data/lib/rubygems/security.rb +21 -22
  176. data/lib/rubygems/security/policies.rb +1 -2
  177. data/lib/rubygems/security/policy.rb +25 -25
  178. data/lib/rubygems/security/signer.rb +72 -24
  179. data/lib/rubygems/security/trust_dir.rb +10 -10
  180. data/lib/rubygems/server.rb +21 -21
  181. data/lib/rubygems/source.rb +16 -25
  182. data/lib/rubygems/source/git.rb +9 -10
  183. data/lib/rubygems/source/installed.rb +3 -4
  184. data/lib/rubygems/source/local.rb +7 -7
  185. data/lib/rubygems/source/lock.rb +4 -4
  186. data/lib/rubygems/source/specific_file.rb +5 -5
  187. data/lib/rubygems/source/vendor.rb +2 -3
  188. data/lib/rubygems/source_list.rb +2 -2
  189. data/lib/rubygems/source_local.rb +0 -1
  190. data/lib/rubygems/spec_fetcher.rb +5 -6
  191. data/lib/rubygems/specification.rb +199 -536
  192. data/lib/rubygems/specification_policy.rb +407 -0
  193. data/lib/rubygems/stub_specification.rb +11 -15
  194. data/lib/rubygems/test_case.rb +141 -66
  195. data/lib/rubygems/test_utilities.rb +20 -35
  196. data/lib/rubygems/text.rb +6 -6
  197. data/lib/rubygems/uninstaller.rb +37 -26
  198. data/lib/rubygems/uri_formatter.rb +1 -2
  199. data/lib/rubygems/user_interaction.rb +38 -93
  200. data/lib/rubygems/util.rb +20 -14
  201. data/lib/rubygems/util/licenses.rb +27 -1
  202. data/lib/rubygems/util/list.rb +1 -1
  203. data/lib/rubygems/validator.rb +4 -5
  204. data/lib/rubygems/version.rb +15 -15
  205. data/lib/rubygems/version_option.rb +2 -3
  206. data/rubygems-update.gemspec +43 -0
  207. data/setup.rb +2 -8
  208. data/test/rubygems/rubygems_plugin.rb +0 -1
  209. data/test/rubygems/simple_gem.rb +1 -1
  210. data/test/rubygems/test_config.rb +7 -2
  211. data/test/rubygems/test_gem.rb +161 -130
  212. data/test/rubygems/test_gem_command.rb +0 -1
  213. data/test/rubygems/test_gem_command_manager.rb +8 -3
  214. data/test/rubygems/test_gem_commands_build_command.rb +219 -15
  215. data/test/rubygems/test_gem_commands_cert_command.rb +69 -8
  216. data/test/rubygems/test_gem_commands_check_command.rb +1 -1
  217. data/test/rubygems/test_gem_commands_cleanup_command.rb +27 -1
  218. data/test/rubygems/test_gem_commands_contents_command.rb +1 -2
  219. data/test/rubygems/test_gem_commands_dependency_command.rb +33 -34
  220. data/test/rubygems/test_gem_commands_environment_command.rb +1 -0
  221. data/test/rubygems/test_gem_commands_fetch_command.rb +0 -1
  222. data/test/rubygems/test_gem_commands_generate_index_command.rb +0 -1
  223. data/test/rubygems/test_gem_commands_help_command.rb +7 -4
  224. data/test/rubygems/test_gem_commands_info_command.rb +44 -0
  225. data/test/rubygems/test_gem_commands_install_command.rb +79 -12
  226. data/test/rubygems/test_gem_commands_lock_command.rb +0 -1
  227. data/test/rubygems/test_gem_commands_open_command.rb +29 -0
  228. data/test/rubygems/test_gem_commands_outdated_command.rb +0 -1
  229. data/test/rubygems/test_gem_commands_owner_command.rb +93 -57
  230. data/test/rubygems/test_gem_commands_pristine_command.rb +65 -30
  231. data/test/rubygems/test_gem_commands_push_command.rb +39 -0
  232. data/test/rubygems/test_gem_commands_query_command.rb +102 -100
  233. data/test/rubygems/test_gem_commands_search_command.rb +0 -1
  234. data/test/rubygems/test_gem_commands_server_command.rb +0 -1
  235. data/test/rubygems/test_gem_commands_setup_command.rb +39 -8
  236. data/test/rubygems/test_gem_commands_signin_command.rb +1 -1
  237. data/test/rubygems/test_gem_commands_sources_command.rb +0 -1
  238. data/test/rubygems/test_gem_commands_specification_command.rb +2 -3
  239. data/test/rubygems/test_gem_commands_stale_command.rb +3 -2
  240. data/test/rubygems/test_gem_commands_uninstall_command.rb +81 -7
  241. data/test/rubygems/test_gem_commands_unpack_command.rb +17 -1
  242. data/test/rubygems/test_gem_commands_update_command.rb +19 -2
  243. data/test/rubygems/test_gem_commands_which_command.rb +0 -1
  244. data/test/rubygems/test_gem_commands_yank_command.rb +0 -1
  245. data/test/rubygems/test_gem_config_file.rb +4 -2
  246. data/test/rubygems/test_gem_dependency.rb +0 -1
  247. data/test/rubygems/test_gem_dependency_installer.rb +8 -5
  248. data/test/rubygems/test_gem_dependency_list.rb +6 -7
  249. data/test/rubygems/test_gem_dependency_resolution_error.rb +0 -1
  250. data/test/rubygems/test_gem_doctor.rb +1 -2
  251. data/test/rubygems/test_gem_ext_builder.rb +10 -23
  252. data/test/rubygems/test_gem_ext_cmake_builder.rb +5 -4
  253. data/test/rubygems/test_gem_ext_configure_builder.rb +3 -3
  254. data/test/rubygems/test_gem_ext_ext_conf_builder.rb +8 -9
  255. data/test/rubygems/test_gem_ext_rake_builder.rb +20 -5
  256. data/test/rubygems/test_gem_gem_runner.rb +0 -1
  257. data/test/rubygems/test_gem_gemcutter_utilities.rb +32 -6
  258. data/test/rubygems/test_gem_impossible_dependencies_error.rb +0 -1
  259. data/test/rubygems/test_gem_indexer.rb +1 -2
  260. data/test/rubygems/test_gem_install_update_options.rb +1 -20
  261. data/test/rubygems/test_gem_installer.rb +69 -203
  262. data/test/rubygems/test_gem_local_remote_options.rb +3 -3
  263. data/test/rubygems/test_gem_name_tuple.rb +0 -1
  264. data/test/rubygems/test_gem_package.rb +59 -50
  265. data/test/rubygems/test_gem_package_old.rb +0 -1
  266. data/test/rubygems/test_gem_package_tar_header.rb +1 -2
  267. data/test/rubygems/test_gem_package_tar_reader.rb +0 -1
  268. data/test/rubygems/test_gem_package_tar_reader_entry.rb +11 -0
  269. data/test/rubygems/test_gem_package_tar_writer.rb +40 -7
  270. data/test/rubygems/test_gem_package_task.rb +2 -2
  271. data/test/rubygems/test_gem_path_support.rb +28 -11
  272. data/test/rubygems/test_gem_platform.rb +4 -5
  273. data/test/rubygems/test_gem_rdoc.rb +1 -2
  274. data/test/rubygems/test_gem_remote_fetcher.rb +111 -130
  275. data/test/rubygems/test_gem_request.rb +5 -5
  276. data/test/rubygems/test_gem_request_connection_pools.rb +24 -3
  277. data/test/rubygems/test_gem_request_set.rb +5 -5
  278. data/test/rubygems/test_gem_request_set_gem_dependency_api.rb +2 -7
  279. data/test/rubygems/test_gem_request_set_lockfile.rb +1 -2
  280. data/test/rubygems/test_gem_request_set_lockfile_parser.rb +4 -9
  281. data/test/rubygems/test_gem_request_set_lockfile_tokenizer.rb +1 -1
  282. data/test/rubygems/test_gem_requirement.rb +18 -4
  283. data/test/rubygems/test_gem_resolver.rb +13 -17
  284. data/test/rubygems/test_gem_resolver_activation_request.rb +0 -1
  285. data/test/rubygems/test_gem_resolver_api_set.rb +0 -1
  286. data/test/rubygems/test_gem_resolver_api_specification.rb +0 -1
  287. data/test/rubygems/test_gem_resolver_best_set.rb +0 -1
  288. data/test/rubygems/test_gem_resolver_composed_set.rb +0 -1
  289. data/test/rubygems/test_gem_resolver_conflict.rb +0 -1
  290. data/test/rubygems/test_gem_resolver_dependency_request.rb +0 -1
  291. data/test/rubygems/test_gem_resolver_git_set.rb +0 -1
  292. data/test/rubygems/test_gem_resolver_git_specification.rb +0 -1
  293. data/test/rubygems/test_gem_resolver_index_set.rb +0 -1
  294. data/test/rubygems/test_gem_resolver_index_specification.rb +0 -1
  295. data/test/rubygems/test_gem_resolver_installed_specification.rb +0 -1
  296. data/test/rubygems/test_gem_resolver_installer_set.rb +2 -3
  297. data/test/rubygems/test_gem_resolver_local_specification.rb +0 -1
  298. data/test/rubygems/test_gem_resolver_lock_set.rb +0 -1
  299. data/test/rubygems/test_gem_resolver_lock_specification.rb +0 -1
  300. data/test/rubygems/test_gem_resolver_requirement_list.rb +0 -1
  301. data/test/rubygems/test_gem_resolver_specification.rb +1 -2
  302. data/test/rubygems/test_gem_resolver_vendor_set.rb +0 -1
  303. data/test/rubygems/test_gem_resolver_vendor_specification.rb +0 -1
  304. data/test/rubygems/test_gem_security.rb +1 -3
  305. data/test/rubygems/test_gem_security_policy.rb +4 -5
  306. data/test/rubygems/test_gem_security_signer.rb +4 -3
  307. data/test/rubygems/test_gem_security_trust_dir.rb +1 -2
  308. data/test/rubygems/test_gem_server.rb +4 -4
  309. data/test/rubygems/test_gem_source.rb +0 -13
  310. data/test/rubygems/test_gem_source_fetch_problem.rb +0 -1
  311. data/test/rubygems/test_gem_source_git.rb +0 -1
  312. data/test/rubygems/test_gem_source_installed.rb +0 -1
  313. data/test/rubygems/test_gem_source_lock.rb +0 -1
  314. data/test/rubygems/test_gem_source_vendor.rb +0 -1
  315. data/test/rubygems/test_gem_spec_fetcher.rb +0 -1
  316. data/test/rubygems/test_gem_specification.rb +334 -198
  317. data/test/rubygems/test_gem_stream_ui.rb +13 -30
  318. data/test/rubygems/test_gem_stub_specification.rb +0 -2
  319. data/test/rubygems/test_gem_text.rb +4 -5
  320. data/test/rubygems/test_gem_uninstaller.rb +21 -1
  321. data/test/rubygems/test_gem_unsatisfiable_dependency_error.rb +0 -1
  322. data/test/rubygems/test_gem_uri_formatter.rb +0 -1
  323. data/test/rubygems/test_gem_util.rb +6 -11
  324. data/test/rubygems/test_gem_validator.rb +0 -1
  325. data/test/rubygems/test_gem_version.rb +11 -11
  326. data/test/rubygems/test_gem_version_option.rb +0 -1
  327. data/test/rubygems/test_remote_fetch_error.rb +0 -1
  328. data/test/rubygems/test_require.rb +67 -52
  329. data/util/CL2notes +1 -2
  330. data/util/ci +15 -12
  331. data/util/create_certs.rb +6 -7
  332. data/util/create_encrypted_key.rb +0 -1
  333. data/util/patch_with_prs.rb +1 -1
  334. data/util/rubocop +8 -0
  335. data/util/update_bundled_ca_certificates.rb +12 -13
  336. data/util/update_changelog.rb +1 -1
  337. metadata +61 -53
  338. data/.autotest +0 -71
  339. data/.document +0 -5
  340. data/CONTRIBUTING.rdoc +0 -130
  341. data/CVE-2013-4287.txt +0 -35
  342. data/CVE-2013-4363.txt +0 -45
  343. data/CVE-2015-3900.txt +0 -40
  344. data/POLICIES.rdoc +0 -74
  345. data/test/rubygems/fix_openssl_warnings.rb +0 -13
@@ -44,7 +44,7 @@ class Gem::Commands::CheckCommand < Gem::Command
44
44
  gems = get_all_gem_names rescue []
45
45
 
46
46
  Gem::Validator.new.alien(gems).sort.each do |key, val|
47
- unless val.empty? then
47
+ unless val.empty?
48
48
  say "#{key} has #{val.size} problems"
49
49
  val.each do |error_entry|
50
50
  say " #{error_entry.path}:"
@@ -22,6 +22,12 @@ class Gem::Commands::CleanupCommand < Gem::Command
22
22
  options[:check_dev] = value
23
23
  end
24
24
 
25
+ add_option('--[no-]user-install',
26
+ 'Cleanup in user\'s home directory instead',
27
+ 'of GEM_HOME.') do |value, options|
28
+ options[:user_install] = value
29
+ end
30
+
25
31
  @candidate_gems = nil
26
32
  @default_gems = []
27
33
  @full = nil
@@ -56,7 +62,7 @@ If no gems are named all gems in GEM_HOME are cleaned.
56
62
  def execute
57
63
  say "Cleaning up installed gems..."
58
64
 
59
- if options[:args].empty? then
65
+ if options[:args].empty?
60
66
  done = false
61
67
  last_set = nil
62
68
 
@@ -105,7 +111,7 @@ If no gems are named all gems in GEM_HOME are cleaned.
105
111
  end
106
112
 
107
113
  def get_candidate_gems
108
- @candidate_gems = unless options[:args].empty? then
114
+ @candidate_gems = unless options[:args].empty?
109
115
  options[:args].map do |gem_name|
110
116
  Gem::Specification.find_all_by_name gem_name
111
117
  end.flatten
@@ -115,7 +121,6 @@ If no gems are named all gems in GEM_HOME are cleaned.
115
121
  end
116
122
 
117
123
  def get_gems_to_cleanup
118
-
119
124
  gems_to_cleanup = @candidate_gems.select { |spec|
120
125
  @primary_gems[spec.name].version != spec.version
121
126
  }
@@ -124,8 +129,10 @@ If no gems are named all gems in GEM_HOME are cleaned.
124
129
  spec.default_gem?
125
130
  }
126
131
 
132
+ uninstall_from = options[:user_install] ? Gem.user_dir : @original_home
133
+
127
134
  gems_to_cleanup = gems_to_cleanup.select { |spec|
128
- spec.base_dir == @original_home
135
+ spec.base_dir == uninstall_from
129
136
  }
130
137
 
131
138
  @default_gems += default_gems
@@ -138,16 +145,16 @@ If no gems are named all gems in GEM_HOME are cleaned.
138
145
 
139
146
  Gem::Specification.each do |spec|
140
147
  if @primary_gems[spec.name].nil? or
141
- @primary_gems[spec.name].version < spec.version then
148
+ @primary_gems[spec.name].version < spec.version
142
149
  @primary_gems[spec.name] = spec
143
150
  end
144
151
  end
145
152
  end
146
153
 
147
- def uninstall_dep spec
154
+ def uninstall_dep(spec)
148
155
  return unless @full.ok_to_remove?(spec.full_name, options[:check_dev])
149
156
 
150
- if options[:dryrun] then
157
+ if options[:dryrun]
151
158
  say "Dry Run Mode: Would uninstall #{spec.full_name}"
152
159
  return
153
160
  end
@@ -73,7 +73,7 @@ prefix or only the files that are requireable.
73
73
 
74
74
  names.each do |name|
75
75
  found =
76
- if options[:show_install_dir] then
76
+ if options[:show_install_dir]
77
77
  gem_install_dir name
78
78
  else
79
79
  gem_contents name
@@ -83,15 +83,15 @@ prefix or only the files that are requireable.
83
83
  end
84
84
  end
85
85
 
86
- def files_in spec
87
- if spec.default_gem? then
86
+ def files_in(spec)
87
+ if spec.default_gem?
88
88
  files_in_default_gem spec
89
89
  else
90
90
  files_in_gem spec
91
91
  end
92
92
  end
93
93
 
94
- def files_in_gem spec
94
+ def files_in_gem(spec)
95
95
  gem_path = spec.full_gem_path
96
96
  extra = "/{#{spec.require_paths.join ','}}" if options[:lib_only]
97
97
  glob = "#{gem_path}#{extra}/**/*"
@@ -102,7 +102,7 @@ prefix or only the files that are requireable.
102
102
  end
103
103
  end
104
104
 
105
- def files_in_default_gem spec
105
+ def files_in_default_gem(spec)
106
106
  spec.files.map do |file|
107
107
  case file
108
108
  when /\A#{spec.bindir}\//
@@ -115,7 +115,7 @@ prefix or only the files that are requireable.
115
115
  end
116
116
  end
117
117
 
118
- def gem_contents name
118
+ def gem_contents(name)
119
119
  spec = spec_for name
120
120
 
121
121
  return false unless spec
@@ -127,7 +127,7 @@ prefix or only the files that are requireable.
127
127
  true
128
128
  end
129
129
 
130
- def gem_install_dir name
130
+ def gem_install_dir(name)
131
131
  spec = spec_for name
132
132
 
133
133
  return false unless spec
@@ -138,27 +138,27 @@ prefix or only the files that are requireable.
138
138
  end
139
139
 
140
140
  def gem_names # :nodoc:
141
- if options[:all] then
141
+ if options[:all]
142
142
  Gem::Specification.map(&:name)
143
143
  else
144
144
  get_all_gem_names
145
145
  end
146
146
  end
147
147
 
148
- def path_description spec_dirs # :nodoc:
149
- if spec_dirs.empty? then
148
+ def path_description(spec_dirs) # :nodoc:
149
+ if spec_dirs.empty?
150
150
  "default gem paths"
151
151
  else
152
152
  "specified path"
153
153
  end
154
154
  end
155
155
 
156
- def show_files files
156
+ def show_files(files)
157
157
  files.sort.each do |prefix, basename|
158
158
  absolute_path = File.join(prefix, basename)
159
159
  next if File.directory? absolute_path
160
160
 
161
- if options[:prefix] then
161
+ if options[:prefix]
162
162
  say absolute_path
163
163
  else
164
164
  say basename
@@ -166,14 +166,14 @@ prefix or only the files that are requireable.
166
166
  end
167
167
  end
168
168
 
169
- def spec_for name
169
+ def spec_for(name)
170
170
  spec = Gem::Specification.find_all_by_name(name, @version).last
171
171
 
172
172
  return spec if spec
173
173
 
174
174
  say "Unable to find gem '#{name}' in #{@path_kind}"
175
175
 
176
- if Gem.configuration.verbose then
176
+ if Gem.configuration.verbose
177
177
  say "\nDirectories searched:"
178
178
  @spec_dirs.sort.each { |dir| say dir }
179
179
  end
@@ -188,4 +188,3 @@ prefix or only the files that are requireable.
188
188
  end
189
189
 
190
190
  end
191
-
@@ -54,7 +54,7 @@ use with other commands.
54
54
  "#{program_name} REGEXP"
55
55
  end
56
56
 
57
- def fetch_remote_specs dependency # :nodoc:
57
+ def fetch_remote_specs(dependency) # :nodoc:
58
58
  fetcher = Gem::SpecFetcher.fetcher
59
59
 
60
60
  ss, = fetcher.spec_for_dependency dependency
@@ -62,7 +62,7 @@ use with other commands.
62
62
  ss.map { |spec, _| spec }
63
63
  end
64
64
 
65
- def fetch_specs name_pattern, dependency # :nodoc:
65
+ def fetch_specs(name_pattern, dependency) # :nodoc:
66
66
  specs = []
67
67
 
68
68
  if local?
@@ -79,7 +79,7 @@ use with other commands.
79
79
  specs.uniq.sort
80
80
  end
81
81
 
82
- def gem_dependency pattern, version, prerelease # :nodoc:
82
+ def gem_dependency(pattern, version, prerelease) # :nodoc:
83
83
  dependency = Gem::Deprecate.skip_during {
84
84
  Gem::Dependency.new pattern, version
85
85
  }
@@ -89,9 +89,9 @@ use with other commands.
89
89
  dependency
90
90
  end
91
91
 
92
- def display_pipe specs # :nodoc:
92
+ def display_pipe(specs) # :nodoc:
93
93
  specs.each do |spec|
94
- unless spec.dependencies.empty? then
94
+ unless spec.dependencies.empty?
95
95
  spec.dependencies.sort_by { |dep| dep.name }.each do |dep|
96
96
  say "#{dep.name} --version '#{dep.requirement}'"
97
97
  end
@@ -99,12 +99,12 @@ use with other commands.
99
99
  end
100
100
  end
101
101
 
102
- def display_readable specs, reverse # :nodoc:
102
+ def display_readable(specs, reverse) # :nodoc:
103
103
  response = String.new
104
104
 
105
105
  specs.each do |spec|
106
106
  response << print_dependencies(spec)
107
- unless reverse[spec.full_name].empty? then
107
+ unless reverse[spec.full_name].empty?
108
108
  response << " Used by\n"
109
109
  reverse[spec.full_name].each do |sp, dep|
110
110
  response << " #{sp} (#{dep})\n"
@@ -128,7 +128,7 @@ use with other commands.
128
128
 
129
129
  reverse = reverse_dependencies specs
130
130
 
131
- if options[:pipe_format] then
131
+ if options[:pipe_format]
132
132
  display_pipe specs
133
133
  else
134
134
  display_readable specs, reverse
@@ -136,13 +136,13 @@ use with other commands.
136
136
  end
137
137
 
138
138
  def ensure_local_only_reverse_dependencies # :nodoc:
139
- if options[:reverse_dependencies] and remote? and not local? then
139
+ if options[:reverse_dependencies] and remote? and not local?
140
140
  alert_error 'Only reverse dependencies for local gems are supported.'
141
141
  terminate_interaction 1
142
142
  end
143
143
  end
144
144
 
145
- def ensure_specs specs # :nodoc:
145
+ def ensure_specs(specs) # :nodoc:
146
146
  return unless specs.empty?
147
147
 
148
148
  patterns = options[:args].join ','
@@ -155,7 +155,7 @@ use with other commands.
155
155
  def print_dependencies(spec, level = 0) # :nodoc:
156
156
  response = String.new
157
157
  response << ' ' * level + "Gem #{spec.full_name}\n"
158
- unless spec.dependencies.empty? then
158
+ unless spec.dependencies.empty?
159
159
  spec.dependencies.sort_by { |dep| dep.name }.each do |dep|
160
160
  response << ' ' * level + " #{dep}\n"
161
161
  end
@@ -163,7 +163,7 @@ use with other commands.
163
163
  response
164
164
  end
165
165
 
166
- def remote_specs dependency # :nodoc:
166
+ def remote_specs(dependency) # :nodoc:
167
167
  fetcher = Gem::SpecFetcher.fetcher
168
168
 
169
169
  ss, _ = fetcher.spec_for_dependency dependency
@@ -171,7 +171,7 @@ use with other commands.
171
171
  ss.map { |s,o| s }
172
172
  end
173
173
 
174
- def reverse_dependencies specs # :nodoc:
174
+ def reverse_dependencies(specs) # :nodoc:
175
175
  reverse = Hash.new { |h, k| h[k] = [] }
176
176
 
177
177
  return reverse unless options[:reverse_dependencies]
@@ -186,7 +186,7 @@ use with other commands.
186
186
  ##
187
187
  # Returns an Array of [specification, dep] that are satisfied by +spec+.
188
188
 
189
- def find_reverse_dependencies spec # :nodoc:
189
+ def find_reverse_dependencies(spec) # :nodoc:
190
190
  result = []
191
191
 
192
192
  Gem::Specification.each do |sp|
@@ -194,7 +194,7 @@ use with other commands.
194
194
  dep = Gem::Dependency.new(*dep) unless Gem::Dependency === dep
195
195
 
196
196
  if spec.name == dep.name and
197
- dep.requirement.satisfied_by?(spec.version) then
197
+ dep.requirement.satisfied_by?(spec.version)
198
198
  result << [sp.full_name, dep]
199
199
  end
200
200
  end
@@ -205,10 +205,10 @@ use with other commands.
205
205
 
206
206
  private
207
207
 
208
- def name_pattern args
208
+ def name_pattern(args)
209
209
  args << '' if args.empty?
210
210
 
211
- if args.length == 1 and args.first =~ /\A\/(.*)\/(i)?\z/m then
211
+ if args.length == 1 and args.first =~ /\A\/(.*)\/(i)?\z/m
212
212
  flags = $2 ? Regexp::IGNORECASE : nil
213
213
  Regexp.new $1, flags
214
214
  else
@@ -97,7 +97,7 @@ lib/rubygems/defaults/operating_system.rb
97
97
  true
98
98
  end
99
99
 
100
- def add_path out, path
100
+ def add_path(out, path)
101
101
  path.each do |component|
102
102
  out << " - #{component}\n"
103
103
  end
@@ -120,6 +120,8 @@ lib/rubygems/defaults/operating_system.rb
120
120
 
121
121
  out << " - RUBY EXECUTABLE: #{Gem.ruby}\n"
122
122
 
123
+ out << " - GIT EXECUTABLE: #{git_path}\n"
124
+
123
125
  out << " - EXECUTABLE DIRECTORY: #{Gem.bindir}\n"
124
126
 
125
127
  out << " - SPEC CACHE DIRECTORY: #{Gem.spec_cache_dir}\n"
@@ -157,4 +159,21 @@ lib/rubygems/defaults/operating_system.rb
157
159
  out
158
160
  end
159
161
 
162
+ private
163
+
164
+ ##
165
+ # Git binary path
166
+
167
+ def git_path
168
+ exts = ENV["PATHEXT"] ? ENV["PATHEXT"].split(";") : [""]
169
+ ENV["PATH"].split(File::PATH_SEPARATOR).each do |path|
170
+ exts.each do |ext|
171
+ exe = File.join(path, "git#{ext}")
172
+ return exe if File.executable?(exe) && !File.directory?(exe)
173
+ end
174
+ end
175
+
176
+ return nil
177
+ end
178
+
160
179
  end
@@ -56,14 +56,14 @@ then repackaging it.
56
56
  specs_and_sources, errors =
57
57
  Gem::SpecFetcher.fetcher.spec_for_dependency dep
58
58
 
59
- if platform then
59
+ if platform
60
60
  filtered = specs_and_sources.select { |s,| s.platform == platform }
61
61
  specs_and_sources = filtered unless filtered.empty?
62
62
  end
63
63
 
64
64
  spec, source = specs_and_sources.max_by { |s,| s.version }
65
65
 
66
- if spec.nil? then
66
+ if spec.nil?
67
67
  show_lookup_failure gem_name, version, errors, options[:domain]
68
68
  next
69
69
  end
@@ -75,4 +75,3 @@ then repackaging it.
75
75
  end
76
76
 
77
77
  end
78
-
@@ -67,13 +67,13 @@ Marshal::MINOR_VERSION constants. It is used to ensure compatibility.
67
67
  options[:build_modern] = true
68
68
 
69
69
  if not File.exist?(options[:directory]) or
70
- not File.directory?(options[:directory]) then
70
+ not File.directory?(options[:directory])
71
71
  alert_error "unknown directory name #{options[:directory]}."
72
72
  terminate_interaction 1
73
73
  else
74
74
  indexer = Gem::Indexer.new options.delete(:directory), options
75
75
 
76
- if options[:update] then
76
+ if options[:update]
77
77
  indexer.update_index
78
78
  else
79
79
  indexer.generate_index
@@ -82,4 +82,3 @@ Marshal::MINOR_VERSION constants. It is used to ensure compatibility.
82
82
  end
83
83
 
84
84
  end
85
-
@@ -4,7 +4,7 @@ require 'rubygems/command'
4
4
  class Gem::Commands::HelpCommand < Gem::Command
5
5
 
6
6
  # :stopdoc:
7
- EXAMPLES = <<-EOF
7
+ EXAMPLES = <<-EOF.freeze
8
8
  Some examples of 'gem' usage.
9
9
 
10
10
  * Install 'rake', either from local directory or remote server:
@@ -53,7 +53,7 @@ Some examples of 'gem' usage.
53
53
  gem update --system
54
54
  EOF
55
55
 
56
- GEM_DEPENDENCIES = <<-EOF
56
+ GEM_DEPENDENCIES = <<-EOF.freeze
57
57
  A gem dependencies file allows installation of a consistent set of gems across
58
58
  multiple environments. The RubyGems implementation is designed to be
59
59
  compatible with Bundler's Gemfile format. You can see additional
@@ -230,7 +230,7 @@ default. This may be overridden with the :development_group option:
230
230
 
231
231
  EOF
232
232
 
233
- PLATFORMS = <<-'EOF'
233
+ PLATFORMS = <<-'EOF'.freeze
234
234
  RubyGems platforms are composed of three parts, a CPU, an OS, and a
235
235
  version. These values are taken from values in rbconfig.rb. You can view
236
236
  your current platform by running `gem environment`.
@@ -277,7 +277,7 @@ platform.
277
277
  ["examples", EXAMPLES],
278
278
  ["gem_dependencies", GEM_DEPENDENCIES],
279
279
  ["platforms", PLATFORMS],
280
- ]
280
+ ].freeze
281
281
  # :startdoc:
282
282
 
283
283
  def initialize
@@ -297,8 +297,8 @@ platform.
297
297
  begins? command, arg
298
298
  end
299
299
 
300
- if help then
301
- if Symbol === help then
300
+ if help
301
+ if Symbol === help
302
302
  send help
303
303
  else
304
304
  say help
@@ -306,10 +306,10 @@ platform.
306
306
  return
307
307
  end
308
308
 
309
- if options[:help] then
309
+ if options[:help]
310
310
  show_help
311
311
 
312
- elsif arg then
312
+ elsif arg
313
313
  show_command_help arg
314
314
 
315
315
  else
@@ -334,7 +334,7 @@ platform.
334
334
  command = @command_manager[cmd_name]
335
335
 
336
336
  summary =
337
- if command then
337
+ if command
338
338
  command.summary
339
339
  else
340
340
  "[No command found for #{cmd_name}]"
@@ -356,15 +356,15 @@ platform.
356
356
  say out.join("\n")
357
357
  end
358
358
 
359
- def show_command_help command_name # :nodoc:
359
+ def show_command_help(command_name) # :nodoc:
360
360
  command_name = command_name.downcase
361
361
 
362
362
  possibilities = @command_manager.find_command_possibilities command_name
363
363
 
364
- if possibilities.size == 1 then
364
+ if possibilities.size == 1
365
365
  command = @command_manager[possibilities.first]
366
366
  command.invoke("--help")
367
- elsif possibilities.size > 1 then
367
+ elsif possibilities.size > 1
368
368
  alert_warning "Ambiguous command #{command_name} (#{possibilities.join(', ')})"
369
369
  else
370
370
  alert_warning "Unknown command #{command_name}. Try: gem help commands"
@@ -372,4 +372,3 @@ platform.
372
372
  end
373
373
 
374
374
  end
375
-