rubygems-update 3.3.5 → 3.3.8

Sign up to get free protection for your applications and to get access to all the features.
Files changed (99) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +34 -0
  3. data/CONTRIBUTING.md +9 -6
  4. data/Manifest.txt +0 -1
  5. data/bundler/CHANGELOG.md +38 -0
  6. data/bundler/lib/bundler/build_metadata.rb +2 -2
  7. data/bundler/lib/bundler/cli/config.rb +10 -1
  8. data/bundler/lib/bundler/cli/doctor.rb +9 -1
  9. data/bundler/lib/bundler/cli/gem.rb +11 -1
  10. data/bundler/lib/bundler/cli/info.rb +10 -1
  11. data/bundler/lib/bundler/cli/install.rb +6 -25
  12. data/bundler/lib/bundler/cli/platform.rb +1 -1
  13. data/bundler/lib/bundler/definition.rb +4 -2
  14. data/bundler/lib/bundler/env.rb +1 -1
  15. data/bundler/lib/bundler/fetcher.rb +5 -5
  16. data/bundler/lib/bundler/man/bundle-add.1 +1 -1
  17. data/bundler/lib/bundler/man/bundle-binstubs.1 +1 -1
  18. data/bundler/lib/bundler/man/bundle-cache.1 +1 -1
  19. data/bundler/lib/bundler/man/bundle-check.1 +1 -1
  20. data/bundler/lib/bundler/man/bundle-clean.1 +1 -1
  21. data/bundler/lib/bundler/man/bundle-config.1 +2 -2
  22. data/bundler/lib/bundler/man/bundle-config.1.ronn +1 -1
  23. data/bundler/lib/bundler/man/bundle-doctor.1 +1 -1
  24. data/bundler/lib/bundler/man/bundle-exec.1 +1 -1
  25. data/bundler/lib/bundler/man/bundle-gem.1 +1 -1
  26. data/bundler/lib/bundler/man/bundle-info.1 +1 -1
  27. data/bundler/lib/bundler/man/bundle-init.1 +1 -1
  28. data/bundler/lib/bundler/man/bundle-inject.1 +1 -1
  29. data/bundler/lib/bundler/man/bundle-install.1 +1 -1
  30. data/bundler/lib/bundler/man/bundle-list.1 +1 -1
  31. data/bundler/lib/bundler/man/bundle-lock.1 +1 -1
  32. data/bundler/lib/bundler/man/bundle-open.1 +1 -1
  33. data/bundler/lib/bundler/man/bundle-outdated.1 +1 -1
  34. data/bundler/lib/bundler/man/bundle-platform.1 +1 -1
  35. data/bundler/lib/bundler/man/bundle-pristine.1 +1 -1
  36. data/bundler/lib/bundler/man/bundle-remove.1 +1 -1
  37. data/bundler/lib/bundler/man/bundle-show.1 +1 -1
  38. data/bundler/lib/bundler/man/bundle-update.1 +1 -1
  39. data/bundler/lib/bundler/man/bundle-viz.1 +1 -1
  40. data/bundler/lib/bundler/man/bundle.1 +1 -1
  41. data/bundler/lib/bundler/man/gemfile.5 +1 -1
  42. data/bundler/lib/bundler/remote_specification.rb +7 -0
  43. data/bundler/lib/bundler/resolver.rb +5 -4
  44. data/bundler/lib/bundler/rubygems_ext.rb +13 -10
  45. data/bundler/lib/bundler/rubygems_integration.rb +2 -14
  46. data/bundler/lib/bundler/settings.rb +1 -1
  47. data/bundler/lib/bundler/shared_helpers.rb +1 -1
  48. data/bundler/lib/bundler/source_map.rb +15 -2
  49. data/bundler/lib/bundler/templates/newgem/standard.yml.tt +1 -0
  50. data/bundler/lib/bundler/templates/newgem/test/minitest/test_newgem.rb.tt +1 -1
  51. data/bundler/lib/bundler/version.rb +1 -1
  52. data/bundler/lib/bundler.rb +1 -1
  53. data/lib/rubygems/basic_specification.rb +8 -8
  54. data/lib/rubygems/bundler_version_finder.rb +3 -3
  55. data/lib/rubygems/command.rb +4 -4
  56. data/lib/rubygems/commands/cleanup_command.rb +6 -6
  57. data/lib/rubygems/commands/dependency_command.rb +20 -30
  58. data/lib/rubygems/commands/list_command.rb +1 -1
  59. data/lib/rubygems/commands/pristine_command.rb +12 -12
  60. data/lib/rubygems/commands/push_command.rb +8 -8
  61. data/lib/rubygems/commands/query_command.rb +1 -1
  62. data/lib/rubygems/commands/rdoc_command.rb +6 -6
  63. data/lib/rubygems/commands/search_command.rb +1 -1
  64. data/lib/rubygems/commands/setup_command.rb +8 -8
  65. data/lib/rubygems/commands/specification_command.rb +4 -4
  66. data/lib/rubygems/commands/update_command.rb +8 -6
  67. data/lib/rubygems/config_file.rb +4 -4
  68. data/lib/rubygems/doctor.rb +5 -5
  69. data/lib/rubygems/gem_runner.rb +5 -5
  70. data/lib/rubygems/install_update_options.rb +4 -4
  71. data/lib/rubygems/installer.rb +51 -12
  72. data/lib/rubygems/package.rb +10 -10
  73. data/lib/rubygems/platform.rb +42 -42
  74. data/lib/rubygems/query_utils.rb +16 -18
  75. data/lib/rubygems/remote_fetcher.rb +4 -4
  76. data/lib/rubygems/request_set/lockfile.rb +4 -4
  77. data/lib/rubygems/source.rb +6 -6
  78. data/lib/rubygems/source_list.rb +7 -7
  79. data/lib/rubygems/spec_fetcher.rb +25 -25
  80. data/lib/rubygems/specification.rb +47 -47
  81. data/lib/rubygems/specification_policy.rb +16 -16
  82. data/lib/rubygems/stub_specification.rb +16 -16
  83. data/lib/rubygems/uninstaller.rb +7 -7
  84. data/lib/rubygems/user_interaction.rb +12 -12
  85. data/lib/rubygems/version.rb +12 -9
  86. data/lib/rubygems.rb +7 -7
  87. data/rubygems-update.gemspec +1 -1
  88. data/test/rubygems/helper.rb +4 -4
  89. data/test/rubygems/test_gem.rb +2 -0
  90. data/test/rubygems/test_gem_command_manager.rb +1 -1
  91. data/test/rubygems/test_gem_commands_setup_command.rb +2 -0
  92. data/test/rubygems/test_gem_commands_update_command.rb +34 -0
  93. data/test/rubygems/test_gem_installer.rb +170 -58
  94. data/test/rubygems/test_gem_stream_ui.rb +1 -1
  95. data/test/rubygems/test_gem_version.rb +4 -0
  96. data/test/rubygems/test_rubygems.rb +5 -1
  97. data/test/rubygems/utilities.rb +4 -4
  98. metadata +3 -4
  99. data/bundler/lib/bundler/psyched_yaml.rb +0 -10
@@ -1,7 +1,7 @@
1
1
  .\" generated with Ronn/v0.7.3
2
2
  .\" http://github.com/rtomayko/ronn/tree/0.7.3
3
3
  .
4
- .TH "BUNDLE" "1" "December 2021" "" ""
4
+ .TH "BUNDLE" "1" "February 2022" "" ""
5
5
  .
6
6
  .SH "NAME"
7
7
  \fBbundle\fR \- Ruby Dependency Management
@@ -1,7 +1,7 @@
1
1
  .\" generated with Ronn/v0.7.3
2
2
  .\" http://github.com/rtomayko/ronn/tree/0.7.3
3
3
  .
4
- .TH "GEMFILE" "5" "December 2021" "" ""
4
+ .TH "GEMFILE" "5" "February 2022" "" ""
5
5
  .
6
6
  .SH "NAME"
7
7
  \fBGemfile\fR \- A format for describing gem dependencies for Ruby programs
@@ -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 = "")
@@ -4,14 +4,12 @@ require "pathname"
4
4
 
5
5
  require "rubygems/specification"
6
6
 
7
- # Possible use in Gem::Specification#source below and require
8
- # shouldn't be deferred.
9
- require "rubygems/source"
10
-
11
7
  require_relative "match_platform"
12
8
 
13
9
  module Gem
14
10
  class Specification
11
+ include ::Bundler::MatchPlatform
12
+
15
13
  attr_accessor :remote, :location, :relative_loaded_from
16
14
 
17
15
  remove_method :source
@@ -81,6 +79,17 @@ module Gem
81
79
  gemfile
82
80
  end
83
81
 
82
+ # Backfill missing YAML require when not defined. Fixed since 3.1.0.pre1.
83
+ module YamlBackfiller
84
+ def to_yaml(opts = {})
85
+ Gem.load_yaml unless defined?(::YAML)
86
+
87
+ super(opts)
88
+ end
89
+ end
90
+
91
+ prepend YamlBackfiller
92
+
84
93
  def nondevelopment_dependencies
85
94
  dependencies - development_dependencies
86
95
  end
@@ -228,9 +237,3 @@ module Gem
228
237
  end
229
238
  end
230
239
  end
231
-
232
- module Gem
233
- class Specification
234
- include ::Bundler::MatchPlatform
235
- end
236
- end
@@ -104,18 +104,6 @@ module Bundler
104
104
  obj.to_s
105
105
  end
106
106
 
107
- def configuration
108
- require_relative "psyched_yaml"
109
- Gem.configuration
110
- rescue Gem::SystemExitException, LoadError => e
111
- Bundler.ui.error "#{e.class}: #{e.message}"
112
- Bundler.ui.trace e
113
- raise
114
- rescue ::Psych::SyntaxError => e
115
- raise YamlSyntaxError.new(e, "Your RubyGems configuration, which is " \
116
- "usually located in ~/.gemrc, contains invalid YAML syntax.")
117
- end
118
-
119
107
  def ruby_engine
120
108
  Gem.ruby_engine
121
109
  end
@@ -217,7 +205,7 @@ module Bundler
217
205
 
218
206
  def spec_from_gem(path, policy = nil)
219
207
  require "rubygems/security"
220
- require_relative "psyched_yaml"
208
+ require "psych"
221
209
  gem_from_path(path, security_policies[policy]).spec
222
210
  rescue Exception, Gem::Exception, Gem::Security::Exception => e # rubocop:disable Lint/RescueException
223
211
  if e.is_a?(Gem::Security::Exception) ||
@@ -522,7 +510,7 @@ module Bundler
522
510
 
523
511
  def gem_remote_fetcher
524
512
  require "rubygems/remote_fetcher"
525
- proxy = configuration[:http_proxy]
513
+ proxy = Gem.configuration[:http_proxy]
526
514
  Gem::RemoteFetcher.new(proxy)
527
515
  end
528
516
 
@@ -367,7 +367,7 @@ module Bundler
367
367
 
368
368
  def to_array(value)
369
369
  return [] unless value
370
- value.split(":").map(&:to_sym)
370
+ value.tr(" ", ":").split(":").map(&:to_sym)
371
371
  end
372
372
 
373
373
  def array_to_s(array)
@@ -141,7 +141,7 @@ module Bundler
141
141
  end
142
142
  return unless multiple_gemfiles
143
143
  message = "Multiple gemfiles (gems.rb and Gemfile) detected. " \
144
- "Make sure you remove Gemfile and Gemfile.lock since bundler is ignoring them in favor of gems.rb and gems.rb.locked."
144
+ "Make sure you remove Gemfile and Gemfile.lock since bundler is ignoring them in favor of gems.rb and gems.locked."
145
145
  Bundler.ui.warn message
146
146
  end
147
147
 
@@ -2,11 +2,12 @@
2
2
 
3
3
  module Bundler
4
4
  class SourceMap
5
- attr_reader :sources, :dependencies
5
+ attr_reader :sources, :dependencies, :locked_specs
6
6
 
7
- def initialize(sources, dependencies)
7
+ def initialize(sources, dependencies, locked_specs)
8
8
  @sources = sources
9
9
  @dependencies = dependencies
10
+ @locked_specs = locked_specs
10
11
  end
11
12
 
12
13
  def pinned_spec_names(skip = nil)
@@ -54,5 +55,17 @@ module Bundler
54
55
  requirements
55
56
  end
56
57
  end
58
+
59
+ def locked_requirements
60
+ @locked_requirements ||= begin
61
+ requirements = {}
62
+ locked_specs.each do |locked_spec|
63
+ source = locked_spec.source
64
+ source.add_dependency_names(locked_spec.name)
65
+ requirements[locked_spec.name] = source
66
+ end
67
+ requirements
68
+ end
69
+ end
57
70
  end
58
71
  end
@@ -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.8".freeze
5
5
 
6
6
  def self.bundler_major_version
7
7
  @bundler_major_version ||= VERSION.split(".").first.to_i
@@ -654,7 +654,7 @@ EOF
654
654
  private
655
655
 
656
656
  def eval_yaml_gemspec(path, contents)
657
- require_relative "bundler/psyched_yaml"
657
+ Kernel.require "psych"
658
658
 
659
659
  Gem::Specification.from_yaml(contents)
660
660
  rescue ::Psych::SyntaxError, ArgumentError, Gem::EndOfYAMLException, Gem::Exception
@@ -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
 
@@ -35,10 +35,10 @@ module Gem::InstallUpdateOptions
35
35
  'List the documentation types you wish to',
36
36
  'generate. For example: rdoc,ri') do |value, options|
37
37
  options[:document] = case value
38
- when nil then %w[ri]
39
- when false then []
40
- else value
41
- end
38
+ when nil then %w[ri]
39
+ when false then []
40
+ else value
41
+ end
42
42
  end
43
43
 
44
44
  add_option(:"Install/Update", '--build-root DIR',