rubygems-update 3.3.5 → 3.3.6

Sign up to get free protection for your applications and to get access to all the features.
Files changed (58) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +18 -0
  3. data/bundler/CHANGELOG.md +15 -0
  4. data/bundler/lib/bundler/build_metadata.rb +2 -2
  5. data/bundler/lib/bundler/cli/doctor.rb +9 -1
  6. data/bundler/lib/bundler/cli/gem.rb +11 -1
  7. data/bundler/lib/bundler/cli/platform.rb +1 -1
  8. data/bundler/lib/bundler/definition.rb +2 -1
  9. data/bundler/lib/bundler/env.rb +1 -1
  10. data/bundler/lib/bundler/remote_specification.rb +7 -0
  11. data/bundler/lib/bundler/resolver.rb +5 -4
  12. data/bundler/lib/bundler/templates/newgem/standard.yml.tt +1 -0
  13. data/bundler/lib/bundler/templates/newgem/test/minitest/test_newgem.rb.tt +1 -1
  14. data/bundler/lib/bundler/version.rb +1 -1
  15. data/lib/rubygems/basic_specification.rb +8 -8
  16. data/lib/rubygems/bundler_version_finder.rb +3 -3
  17. data/lib/rubygems/command.rb +4 -4
  18. data/lib/rubygems/commands/cleanup_command.rb +6 -6
  19. data/lib/rubygems/commands/dependency_command.rb +20 -30
  20. data/lib/rubygems/commands/list_command.rb +1 -1
  21. data/lib/rubygems/commands/pristine_command.rb +12 -12
  22. data/lib/rubygems/commands/push_command.rb +8 -8
  23. data/lib/rubygems/commands/query_command.rb +1 -1
  24. data/lib/rubygems/commands/rdoc_command.rb +6 -6
  25. data/lib/rubygems/commands/search_command.rb +1 -1
  26. data/lib/rubygems/commands/setup_command.rb +8 -8
  27. data/lib/rubygems/commands/specification_command.rb +4 -4
  28. data/lib/rubygems/commands/update_command.rb +8 -6
  29. data/lib/rubygems/config_file.rb +4 -4
  30. data/lib/rubygems/doctor.rb +5 -5
  31. data/lib/rubygems/gem_runner.rb +5 -5
  32. data/lib/rubygems/install_update_options.rb +4 -4
  33. data/lib/rubygems/installer.rb +51 -12
  34. data/lib/rubygems/package.rb +10 -10
  35. data/lib/rubygems/platform.rb +42 -42
  36. data/lib/rubygems/query_utils.rb +16 -18
  37. data/lib/rubygems/remote_fetcher.rb +4 -4
  38. data/lib/rubygems/request_set/lockfile.rb +4 -4
  39. data/lib/rubygems/source.rb +6 -6
  40. data/lib/rubygems/source_list.rb +7 -7
  41. data/lib/rubygems/spec_fetcher.rb +25 -25
  42. data/lib/rubygems/specification.rb +46 -46
  43. data/lib/rubygems/specification_policy.rb +16 -16
  44. data/lib/rubygems/stub_specification.rb +16 -16
  45. data/lib/rubygems/uninstaller.rb +7 -7
  46. data/lib/rubygems/user_interaction.rb +12 -12
  47. data/lib/rubygems/version.rb +9 -7
  48. data/lib/rubygems.rb +7 -7
  49. data/rubygems-update.gemspec +1 -1
  50. data/test/rubygems/helper.rb +4 -4
  51. data/test/rubygems/test_gem.rb +2 -0
  52. data/test/rubygems/test_gem_command_manager.rb +1 -1
  53. data/test/rubygems/test_gem_commands_update_command.rb +34 -0
  54. data/test/rubygems/test_gem_installer.rb +170 -58
  55. data/test/rubygems/test_gem_stream_ui.rb +1 -1
  56. data/test/rubygems/test_gem_version.rb +4 -0
  57. data/test/rubygems/utilities.rb +4 -4
  58. metadata +3 -3
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 9648fb20873191a9544a114fb8924f9f08625fa63d590a3a0434e3b2b95b516d
4
- data.tar.gz: b29121744e804674e10ae19f1cbc9525a8c8c0ee73072e27baf726479b995180
3
+ metadata.gz: 498b97d36cfdbe927831044d377e36e6ce8bf07724f1ec5fc1b9dfa39376c7d4
4
+ data.tar.gz: 4afa885b9263b0154b00e0695849c2b795f7870f625c37a368104333ea56309b
5
5
  SHA512:
6
- metadata.gz: 5b8f751c2bd5a5bca0b8c7baa474ac226cb697275582681f14cb57326279e5f17db249803f33177344f7ebb199fef3c1c396c7aaf749950b3b8bb62e47b16dce
7
- data.tar.gz: c5be5acbc735daa56571bbf4b51a1edf0271c8c6d56d7a7a403401a03863580669cdca71b9d426434701200a2cd10e20b215d1b6b17f8d1bebe4cd2bcdf91ed2
6
+ metadata.gz: 34f91a116d9e346e3fd26ea549d5d6b2c5f959d00612557d1abf133da8d6566b9a186f5d116f878f49ad629215de9604763f84cd32bc14c8d2b7b200c80ae387
7
+ data.tar.gz: 173c8fdd07607bc57c6ba6bc12a5551f5db03f20fabdb25924069e4e067e7dc8314fb343495487735eb16ad2bc410aebd0c21002fffaab873399a017953f7e89
data/CHANGELOG.md CHANGED
@@ -1,3 +1,21 @@
1
+ # 3.3.6 / 2022-01-26
2
+
3
+ ## Enhancements:
4
+
5
+ * Forbid downgrading past the originally shipped version on Ruby 3.1. Pull
6
+ request #5301 by deivid-rodriguez
7
+ * Support `--enable-load-relative` inside binstubs. Pull request #2929 by
8
+ deivid-rodriguez
9
+ * Let `Version#<=>` accept a String. Pull request #5275 by amatsuda
10
+ * Installs bundler 2.3.6 as a default gem.
11
+
12
+ ## Bug fixes:
13
+
14
+ * Avoid `flock` on non Windows systems, since it causing issues on NFS
15
+ file systems. Pull request #5278 by deivid-rodriguez
16
+ * Fix `gem update --system` for already installed version of
17
+ `rubygems-update`. Pull request #5285 by loadkpi
18
+
1
19
  # 3.3.5 / 2022-01-12
2
20
 
3
21
  ## Enhancements:
data/bundler/CHANGELOG.md CHANGED
@@ -1,3 +1,18 @@
1
+ # 2.3.6 (January 26, 2022)
2
+
3
+ ## Enhancements:
4
+
5
+ - Use `Gem::Platform.local` instead of `RUBY_PLATFORM` when displaying local platform [#5306](https://github.com/rubygems/rubygems/pull/5306)
6
+ - Lock standard.yml to the required ruby version [#5284](https://github.com/rubygems/rubygems/pull/5284)
7
+ - Use `Fiddle` in `bundle doctor` to check for dynamic library presence [#5173](https://github.com/rubygems/rubygems/pull/5173)
8
+
9
+ ## Bug fixes:
10
+
11
+ - Fix edge case where gems were incorrectly removed from the lockfile [#5302](https://github.com/rubygems/rubygems/pull/5302)
12
+ - Fix `force_ruby_platform` ignored when lockfile includes current specific platform [#5304](https://github.com/rubygems/rubygems/pull/5304)
13
+ - Create minitest file to underscored path in "bundle gem" command with dashed gem name [#5273](https://github.com/rubygems/rubygems/pull/5273)
14
+ - Fix regression with old marshaled specs having null `required_rubygems_version` [#5291](https://github.com/rubygems/rubygems/pull/5291)
15
+
1
16
  # 2.3.5 (January 12, 2022)
2
17
 
3
18
  ## Enhancements:
@@ -4,8 +4,8 @@ module Bundler
4
4
  # Represents metadata from when the Bundler gem was built.
5
5
  module BuildMetadata
6
6
  # begin ivars
7
- @built_at = "2022-01-12".freeze
8
- @git_commit_sha = "a13d015fcb".freeze
7
+ @built_at = "2022-01-26".freeze
8
+ @git_commit_sha = "056f64c33a".freeze
9
9
  @release = true
10
10
  # end ivars
11
11
 
@@ -2,6 +2,7 @@
2
2
 
3
3
  require "rbconfig"
4
4
  require "shellwords"
5
+ require "fiddle"
5
6
 
6
7
  module Bundler
7
8
  class CLI::Doctor
@@ -71,7 +72,14 @@ module Bundler
71
72
 
72
73
  definition.specs.each do |spec|
73
74
  bundles_for_gem(spec).each do |bundle|
74
- bad_paths = dylibs(bundle).select {|f| !File.exist?(f) }
75
+ bad_paths = dylibs(bundle).select do |f|
76
+ begin
77
+ Fiddle.dlopen(f)
78
+ false
79
+ rescue Fiddle::DLError
80
+ true
81
+ end
82
+ end
75
83
  if bad_paths.any?
76
84
  broken_links[spec] ||= []
77
85
  broken_links[spec].concat(bad_paths)
@@ -38,6 +38,7 @@ module Bundler
38
38
  namespaced_path = name.tr("-", "/")
39
39
  constant_name = name.gsub(/-[_-]*(?![_-]|$)/) { "::" }.gsub(/([_-]+|(::)|^)(.|$)/) { $2.to_s + $3.upcase }
40
40
  constant_array = constant_name.split("::")
41
+ minitest_constant_name = constant_array.clone.tap {|a| a[-1] = "Test#{a[-1]}" }.join("::") # Foo::Bar => Foo::TestBar
41
42
 
42
43
  use_git = Bundler.git_present? && options[:git]
43
44
 
@@ -69,6 +70,7 @@ module Bundler
69
70
  :git => use_git,
70
71
  :github_username => github_username.empty? ? "[USERNAME]" : github_username,
71
72
  :required_ruby_version => required_ruby_version,
73
+ :minitest_constant_name => minitest_constant_name,
72
74
  }
73
75
  ensure_safe_gem_name(name, constant_array)
74
76
 
@@ -104,9 +106,17 @@ module Bundler
104
106
  )
105
107
  config[:test_task] = :spec
106
108
  when "minitest"
109
+ # Generate path for minitest target file (FileList["test/**/test_*.rb"])
110
+ # foo => test/test_foo.rb
111
+ # foo-bar => test/foo/test_bar.rb
112
+ # foo_bar => test/test_foo_bar.rb
113
+ paths = namespaced_path.rpartition("/")
114
+ paths[2] = "test_#{paths[2]}"
115
+ minitest_namespaced_path = paths.join("")
116
+
107
117
  templates.merge!(
108
118
  "test/minitest/test_helper.rb.tt" => "test/test_helper.rb",
109
- "test/minitest/test_newgem.rb.tt" => "test/test_#{namespaced_path}.rb"
119
+ "test/minitest/test_newgem.rb.tt" => "test/#{minitest_namespaced_path}.rb"
110
120
  )
111
121
  config[:test_task] = :test
112
122
  when "test-unit"
@@ -23,7 +23,7 @@ module Bundler
23
23
  output << "No ruby version specified"
24
24
  end
25
25
  else
26
- output << "Your platform is: #{RUBY_PLATFORM}"
26
+ output << "Your platform is: #{Gem::Platform.local}"
27
27
  output << "Your app has gems that work on these platforms:\n#{platforms.join("\n")}"
28
28
 
29
29
  if ruby_version
@@ -265,7 +265,7 @@ module Bundler
265
265
  else
266
266
  # Run a resolve against the locally available gems
267
267
  Bundler.ui.debug("Found changes from the lockfile, re-resolving dependencies because #{change_reason}")
268
- expanded_dependencies = expand_dependencies(dependencies + metadata_dependencies, @remote)
268
+ expanded_dependencies = expand_dependencies(dependencies + metadata_dependencies, true)
269
269
  Resolver.resolve(expanded_dependencies, source_requirements, last_resolve, gem_version_promoter, additional_base_requirements_for_resolve, platforms)
270
270
  end
271
271
  end
@@ -495,6 +495,7 @@ module Bundler
495
495
 
496
496
  def current_ruby_platform_locked?
497
497
  return false unless generic_local_platform == Gem::Platform::RUBY
498
+ return false if Bundler.settings[:force_ruby_platform] && !@platforms.include?(Gem::Platform::RUBY)
498
499
 
499
500
  current_platform_locked?
500
501
  end
@@ -71,7 +71,7 @@ module Bundler
71
71
  def self.ruby_version
72
72
  str = String.new(RUBY_VERSION)
73
73
  str << "p#{RUBY_PATCHLEVEL}" if defined? RUBY_PATCHLEVEL
74
- str << " (#{RUBY_RELEASE_DATE} revision #{RUBY_REVISION}) [#{RUBY_PLATFORM}]"
74
+ str << " (#{RUBY_RELEASE_DATE} revision #{RUBY_REVISION}) [#{Gem::Platform.local}]"
75
75
  end
76
76
 
77
77
  def self.git_version
@@ -27,6 +27,13 @@ module Bundler
27
27
  @platform = _remote_specification.platform
28
28
  end
29
29
 
30
+ # A fallback is included because the original version of the specification
31
+ # API didn't include that field, so some marshalled specs in the index have it
32
+ # set to +nil+.
33
+ def required_rubygems_version
34
+ @required_rubygems_version ||= _remote_specification.required_rubygems_version || Gem::Requirement.default
35
+ end
36
+
30
37
  def full_name
31
38
  if platform == Gem::Platform::RUBY || platform.nil?
32
39
  "#{@name}-#{@version}"
@@ -249,10 +249,11 @@ module Bundler
249
249
  end
250
250
 
251
251
  def verify_gemfile_dependencies_are_found!(requirements)
252
- requirements.each do |requirement|
252
+ requirements.map! do |requirement|
253
253
  name = requirement.name
254
- next if name == "bundler"
255
- next unless search_for(requirement).empty?
254
+ next requirement if name == "bundler"
255
+ next requirement unless search_for(requirement).empty?
256
+ next unless requirement.current_platform?
256
257
 
257
258
  if (base = @base[name]) && !base.empty?
258
259
  version = base.first.version
@@ -266,7 +267,7 @@ module Bundler
266
267
  message = gem_not_found_message(name, requirement, source_for(name))
267
268
  end
268
269
  raise GemNotFound, message
269
- end
270
+ end.compact!
270
271
  end
271
272
 
272
273
  def gem_not_found_message(name, requirement, source, extra_message = "")
@@ -1,2 +1,3 @@
1
1
  # For available configuration options, see:
2
2
  # https://github.com/testdouble/standard
3
+ ruby_version: <%= ::Gem::Version.new(config[:required_ruby_version]).segments[0..1].join(".") %>
@@ -2,7 +2,7 @@
2
2
 
3
3
  require "test_helper"
4
4
 
5
- class Test<%= config[:constant_name] %> < Minitest::Test
5
+ class <%= config[:minitest_constant_name] %> < Minitest::Test
6
6
  def test_that_it_has_a_version_number
7
7
  refute_nil ::<%= config[:constant_name] %>::VERSION
8
8
  end
@@ -1,7 +1,7 @@
1
1
  # frozen_string_literal: false
2
2
 
3
3
  module Bundler
4
- VERSION = "2.3.5".freeze
4
+ VERSION = "2.3.6".freeze
5
5
 
6
6
  def self.bundler_major_version
7
7
  @bundler_major_version ||= VERSION.split(".").first.to_i
@@ -289,14 +289,14 @@ class Gem::BasicSpecification
289
289
 
290
290
  def lib_dirs_glob
291
291
  dirs = if self.raw_require_paths
292
- if self.raw_require_paths.size > 1
293
- "{#{self.raw_require_paths.join(',')}}"
294
- else
295
- self.raw_require_paths.first
296
- end
297
- else
298
- "lib" # default value for require_paths for bundler/inline
299
- end
292
+ if self.raw_require_paths.size > 1
293
+ "{#{self.raw_require_paths.join(',')}}"
294
+ else
295
+ self.raw_require_paths.first
296
+ end
297
+ else
298
+ "lib" # default value for require_paths for bundler/inline
299
+ end
300
300
 
301
301
  "#{self.full_gem_path}/#{dirs}".dup.tap(&Gem::UNTAINT)
302
302
  end
@@ -65,9 +65,9 @@ module Gem::BundlerVersionFinder
65
65
  return unless gemfile
66
66
 
67
67
  lockfile = case gemfile
68
- when "gems.rb" then "gems.locked"
69
- else "#{gemfile}.lock"
70
- end.dup.tap(&Gem::UNTAINT)
68
+ when "gems.rb" then "gems.locked"
69
+ else "#{gemfile}.lock"
70
+ end.dup.tap(&Gem::UNTAINT)
71
71
 
72
72
  return unless File.file?(lockfile)
73
73
 
@@ -398,10 +398,10 @@ class Gem::Command
398
398
  version_to_expire = deprecation["rg_version_to_expire"]
399
399
 
400
400
  deprecate_option_msg = if version_to_expire
401
- "The \"#{option}\" option has been deprecated and will be removed in Rubygems #{version_to_expire}."
402
- else
403
- "The \"#{option}\" option has been deprecated and will be removed in future versions of Rubygems."
404
- end
401
+ "The \"#{option}\" option has been deprecated and will be removed in Rubygems #{version_to_expire}."
402
+ else
403
+ "The \"#{option}\" option has been deprecated and will be removed in future versions of Rubygems."
404
+ end
405
405
 
406
406
  extra_msg = deprecation["extra_msg"]
407
407
 
@@ -117,12 +117,12 @@ If no gems are named all gems in GEM_HOME are cleaned.
117
117
 
118
118
  def get_candidate_gems
119
119
  @candidate_gems = unless options[:args].empty?
120
- options[:args].map do |gem_name|
121
- Gem::Specification.find_all_by_name gem_name
122
- end.flatten
123
- else
124
- Gem::Specification.to_a
125
- end
120
+ options[:args].map do |gem_name|
121
+ Gem::Specification.find_all_by_name gem_name
122
+ end.flatten
123
+ else
124
+ Gem::Specification.to_a
125
+ end
126
126
  end
127
127
 
128
128
  def get_gems_to_cleanup
@@ -53,41 +53,41 @@ use with other commands.
53
53
  "#{program_name} REGEXP"
54
54
  end
55
55
 
56
- def fetch_remote_specs(dependency) # :nodoc:
56
+ def fetch_remote_specs(name, requirement, prerelease) # :nodoc:
57
57
  fetcher = Gem::SpecFetcher.fetcher
58
58
 
59
- ss, = fetcher.spec_for_dependency dependency
59
+ specs_type = prerelease ? :complete : :released
60
60
 
61
- ss.map {|spec, _| spec }
61
+ ss = if name.nil?
62
+ fetcher.detect(specs_type) { true }
63
+ else
64
+ fetcher.detect(specs_type) do |name_tuple|
65
+ name === name_tuple.name && requirement.satisfied_by?(name_tuple.version)
66
+ end
67
+ end
68
+
69
+ ss.map {|tuple, source| source.fetch_spec(tuple) }
62
70
  end
63
71
 
64
- def fetch_specs(name_pattern, dependency) # :nodoc:
72
+ def fetch_specs(name_pattern, requirement, prerelease) # :nodoc:
65
73
  specs = []
66
74
 
67
75
  if local?
68
76
  specs.concat Gem::Specification.stubs.find_all {|spec|
69
- name_pattern =~ spec.name and
70
- dependency.requirement.satisfied_by? spec.version
77
+ name_matches = name_pattern ? name_pattern =~ spec.name : true
78
+ version_matches = requirement.satisfied_by?(spec.version)
79
+
80
+ name_matches and version_matches
71
81
  }.map(&:to_spec)
72
82
  end
73
83
 
74
- specs.concat fetch_remote_specs dependency if remote?
84
+ specs.concat fetch_remote_specs name_pattern, requirement, prerelease if remote?
75
85
 
76
86
  ensure_specs specs
77
87
 
78
88
  specs.uniq.sort
79
89
  end
80
90
 
81
- def gem_dependency(pattern, version, prerelease) # :nodoc:
82
- dependency = Gem::Deprecate.skip_during do
83
- Gem::Dependency.new pattern, version
84
- end
85
-
86
- dependency.prerelease = prerelease
87
-
88
- dependency
89
- end
90
-
91
91
  def display_pipe(specs) # :nodoc:
92
92
  specs.each do |spec|
93
93
  unless spec.dependencies.empty?
@@ -119,11 +119,9 @@ use with other commands.
119
119
  ensure_local_only_reverse_dependencies
120
120
 
121
121
  pattern = name_pattern options[:args]
122
+ requirement = Gem::Requirement.new options[:version]
122
123
 
123
- dependency =
124
- gem_dependency pattern, options[:version], options[:prerelease]
125
-
126
- specs = fetch_specs pattern, dependency
124
+ specs = fetch_specs pattern, requirement, options[:prerelease]
127
125
 
128
126
  reverse = reverse_dependencies specs
129
127
 
@@ -162,14 +160,6 @@ use with other commands.
162
160
  response
163
161
  end
164
162
 
165
- def remote_specs(dependency) # :nodoc:
166
- fetcher = Gem::SpecFetcher.fetcher
167
-
168
- ss, _ = fetcher.spec_for_dependency dependency
169
-
170
- ss.map {|s,o| s }
171
- end
172
-
173
163
  def reverse_dependencies(specs) # :nodoc:
174
164
  reverse = Hash.new {|h, k| h[k] = [] }
175
165
 
@@ -205,7 +195,7 @@ use with other commands.
205
195
  private
206
196
 
207
197
  def name_pattern(args)
208
- args << '' if args.empty?
198
+ return if args.empty?
209
199
 
210
200
  if args.length == 1 and args.first =~ /\A(.*)(i)?\z/m
211
201
  flags = $2 ? Regexp::IGNORECASE : nil
@@ -10,7 +10,7 @@ class Gem::Commands::ListCommand < Gem::Command
10
10
 
11
11
  def initialize
12
12
  super 'list', 'Display local gems whose name matches REGEXP',
13
- :name => //, :domain => :local, :details => false, :versions => true,
13
+ :domain => :local, :details => false, :versions => true,
14
14
  :installed => nil, :version => Gem::Requirement.default
15
15
 
16
16
  add_query_options
@@ -98,20 +98,20 @@ extensions will be restored.
98
98
 
99
99
  def execute
100
100
  specs = if options[:all]
101
- Gem::Specification.map
101
+ Gem::Specification.map
102
102
 
103
- # `--extensions` must be explicitly given to pristine only gems
104
- # with extensions.
105
- elsif options[:extensions_set] and
103
+ # `--extensions` must be explicitly given to pristine only gems
104
+ # with extensions.
105
+ elsif options[:extensions_set] and
106
106
  options[:extensions] and options[:args].empty?
107
- Gem::Specification.select do |spec|
108
- spec.extensions and not spec.extensions.empty?
109
- end
110
- else
111
- get_all_gem_names.sort.map do |gem_name|
112
- Gem::Specification.find_all_by_name(gem_name, options[:version]).reverse
113
- end.flatten
114
- end
107
+ Gem::Specification.select do |spec|
108
+ spec.extensions and not spec.extensions.empty?
109
+ end
110
+ else
111
+ get_all_gem_names.sort.map do |gem_name|
112
+ Gem::Specification.find_all_by_name(gem_name, options[:version]).reverse
113
+ end.flatten
114
+ end
115
115
 
116
116
  specs = specs.select{|spec| RUBY_ENGINE == spec.platform || Gem::Platform.local === spec.platform || spec.platform == Gem::Platform::RUBY }
117
117
 
@@ -52,14 +52,14 @@ The push command will use ~/.gem/credentials to authenticate to a server, but yo
52
52
  default_gem_server, push_host = get_hosts_for(gem_name)
53
53
 
54
54
  @host = if @user_defined_host
55
- options[:host]
56
- elsif default_gem_server
57
- default_gem_server
58
- elsif push_host
59
- push_host
60
- else
61
- options[:host]
62
- end
55
+ options[:host]
56
+ elsif default_gem_server
57
+ default_gem_server
58
+ elsif push_host
59
+ push_host
60
+ else
61
+ options[:host]
62
+ end
63
63
 
64
64
  sign_in @host, scope: get_push_scope
65
65
 
@@ -20,7 +20,7 @@ class Gem::Commands::QueryCommand < Gem::Command
20
20
  def initialize(name = 'query',
21
21
  summary = 'Query gem information in local or remote repositories')
22
22
  super name, summary,
23
- :name => //, :domain => :local, :details => false, :versions => true,
23
+ :domain => :local, :details => false, :versions => true,
24
24
  :installed => nil, :version => Gem::Requirement.default
25
25
 
26
26
  add_option('-n', '--name-matches REGEXP',
@@ -61,12 +61,12 @@ Use --overwrite to force rebuilding of documentation.
61
61
 
62
62
  def execute
63
63
  specs = if options[:all]
64
- Gem::Specification.to_a
65
- else
66
- get_all_gem_names.map do |name|
67
- Gem::Specification.find_by_name name, options[:version]
68
- end.flatten.uniq
69
- end
64
+ Gem::Specification.to_a
65
+ else
66
+ get_all_gem_names.map do |name|
67
+ Gem::Specification.find_by_name name, options[:version]
68
+ end.flatten.uniq
69
+ end
70
70
 
71
71
  if specs.empty?
72
72
  alert_error 'No matching gems found'
@@ -7,7 +7,7 @@ class Gem::Commands::SearchCommand < Gem::Command
7
7
 
8
8
  def initialize
9
9
  super 'search', 'Display remote gems whose name matches REGEXP',
10
- :name => //, :domain => :remote, :details => false, :versions => true,
10
+ :domain => :remote, :details => false, :versions => true,
11
11
  :installed => nil, :version => Gem::Requirement.default
12
12
 
13
13
  add_query_options
@@ -54,10 +54,10 @@ class Gem::Commands::SetupCommand < Gem::Command
54
54
  'List the documentation types you wish to',
55
55
  'generate. For example: rdoc,ri' do |value, options|
56
56
  options[:document] = case value
57
- when nil then %w[rdoc ri]
58
- when false then []
59
- else value
60
- end
57
+ when nil then %w[rdoc ri]
58
+ when false then []
59
+ else value
60
+ end
61
61
  end
62
62
 
63
63
  add_option '--[no-]rdoc',
@@ -666,10 +666,10 @@ abort "#{deprecation_message}"
666
666
 
667
667
  def target_bin_path(bin_dir, bin_file)
668
668
  bin_file_formatted = if options[:format_executable]
669
- Gem.default_exec_format % bin_file
670
- else
671
- bin_file
672
- end
669
+ Gem.default_exec_format % bin_file
670
+ else
671
+ bin_file
672
+ end
673
673
  File.join bin_dir, bin_file_formatted
674
674
  end
675
675
 
@@ -140,10 +140,10 @@ Specific fields in the specification can be extracted in YAML format:
140
140
  s = s.send field if field
141
141
 
142
142
  say case options[:format]
143
- when :ruby then s.to_ruby
144
- when :marshal then Marshal.dump s
145
- else s.to_yaml
146
- end
143
+ when :ruby then s.to_ruby
144
+ when :marshal then Marshal.dump s
145
+ else s.to_yaml
146
+ end
147
147
 
148
148
  say "\n"
149
149
  end
@@ -233,10 +233,10 @@ command to remove old versions.
233
233
  up_ver = gems_to_update.first.version
234
234
 
235
235
  target = if update_latest
236
- up_ver
237
- else
238
- version
239
- end
236
+ up_ver
237
+ else
238
+ version
239
+ end
240
240
 
241
241
  return target, requirement
242
242
  end
@@ -287,7 +287,7 @@ command to remove old versions.
287
287
  check_oldest_rubygems version
288
288
 
289
289
  installed_gems = Gem::Specification.find_all_by_name 'rubygems-update', requirement
290
- installed_gems = update_gem('rubygems-update', version) if installed_gems.empty?
290
+ installed_gems = update_gem('rubygems-update', version) if installed_gems.empty? || installed_gems.first.version != version
291
291
  return if installed_gems.empty?
292
292
 
293
293
  version = installed_gems.first.version
@@ -336,7 +336,9 @@ command to remove old versions.
336
336
  #
337
337
  def oldest_supported_version
338
338
  @oldest_supported_version ||=
339
- if Gem.ruby_version > Gem::Version.new("3.0.a")
339
+ if Gem.ruby_version > Gem::Version.new("3.1.a")
340
+ Gem::Version.new("3.3.3")
341
+ elsif Gem.ruby_version > Gem::Version.new("3.0.a")
340
342
  Gem::Version.new("3.2.3")
341
343
  elsif Gem.ruby_version > Gem::Version.new("2.7.a")
342
344
  Gem::Version.new("3.1.2")
@@ -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]
@@ -117,11 +117,11 @@ class Gem::Doctor
117
117
  type = File.directory?(child) ? 'directory' : 'file'
118
118
 
119
119
  action = if @dry_run
120
- 'Extra'
121
- else
122
- FileUtils.rm_r(child)
123
- 'Removed'
124
- end
120
+ 'Extra'
121
+ else
122
+ FileUtils.rm_r(child)
123
+ 'Removed'
124
+ end
125
125
 
126
126
  say "#{action} #{type} #{sub_directory}/#{File.basename(child)}"
127
127
  end
@@ -42,11 +42,11 @@ class Gem::GemRunner
42
42
  cmd.command_names.each do |command_name|
43
43
  config_args = Gem.configuration[command_name]
44
44
  config_args = case config_args
45
- when String
46
- config_args.split ' '
47
- else
48
- Array(config_args)
49
- end
45
+ when String
46
+ config_args.split ' '
47
+ else
48
+ Array(config_args)
49
+ end
50
50
  Gem::Command.add_specific_extra_args command_name, config_args
51
51
  end
52
52