rubygems-update 3.4.21 → 3.4.22

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 (113) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +33 -0
  3. data/Manifest.txt +5 -0
  4. data/bundler/CHANGELOG.md +21 -0
  5. data/bundler/README.md +1 -2
  6. data/bundler/lib/bundler/build_metadata.rb +2 -2
  7. data/bundler/lib/bundler/cli/gem.rb +3 -0
  8. data/bundler/lib/bundler/definition.rb +1 -1
  9. data/bundler/lib/bundler/endpoint_specification.rb +1 -1
  10. data/bundler/lib/bundler/errors.rb +15 -0
  11. data/bundler/lib/bundler/gem_helpers.rb +7 -0
  12. data/bundler/lib/bundler/installer/gem_installer.rb +5 -5
  13. data/bundler/lib/bundler/lazy_specification.rb +4 -0
  14. data/bundler/lib/bundler/plugin/index.rb +8 -0
  15. data/bundler/lib/bundler/plugin.rb +9 -2
  16. data/bundler/lib/bundler/rubygems_ext.rb +3 -4
  17. data/bundler/lib/bundler/rubygems_gem_installer.rb +23 -8
  18. data/bundler/lib/bundler/source/git/git_proxy.rb +9 -1
  19. data/bundler/lib/bundler/source/metadata.rb +1 -1
  20. data/bundler/lib/bundler/spec_set.rb +5 -2
  21. data/bundler/lib/bundler/templates/newgem/newgem.gemspec.tt +1 -1
  22. data/bundler/lib/bundler/ui/shell.rb +1 -1
  23. data/bundler/lib/bundler/vendor/net-http-persistent/lib/net/http/persistent/connection.rb +1 -0
  24. data/bundler/lib/bundler/vendor/net-http-persistent/lib/net/http/persistent/pool.rb +21 -9
  25. data/bundler/lib/bundler/vendor/net-http-persistent/lib/net/http/persistent.rb +1 -1
  26. data/bundler/lib/bundler/vendor/thor/lib/thor/actions/create_file.rb +3 -2
  27. data/bundler/lib/bundler/vendor/thor/lib/thor/actions/directory.rb +1 -1
  28. data/bundler/lib/bundler/vendor/thor/lib/thor/actions/empty_directory.rb +1 -1
  29. data/bundler/lib/bundler/vendor/thor/lib/thor/actions/file_manipulation.rb +8 -10
  30. data/bundler/lib/bundler/vendor/thor/lib/thor/actions/inject_into_file.rb +15 -4
  31. data/bundler/lib/bundler/vendor/thor/lib/thor/actions.rb +15 -15
  32. data/bundler/lib/bundler/vendor/thor/lib/thor/base.rb +140 -14
  33. data/bundler/lib/bundler/vendor/thor/lib/thor/command.rb +13 -4
  34. data/bundler/lib/bundler/vendor/thor/lib/thor/core_ext/hash_with_indifferent_access.rb +4 -0
  35. data/bundler/lib/bundler/vendor/thor/lib/thor/error.rb +16 -25
  36. data/bundler/lib/bundler/vendor/thor/lib/thor/group.rb +1 -1
  37. data/bundler/lib/bundler/vendor/thor/lib/thor/invocation.rb +1 -1
  38. data/bundler/lib/bundler/vendor/thor/lib/thor/nested_context.rb +2 -2
  39. data/bundler/lib/bundler/vendor/thor/lib/thor/parser/argument.rb +20 -1
  40. data/bundler/lib/bundler/vendor/thor/lib/thor/parser/arguments.rb +33 -17
  41. data/bundler/lib/bundler/vendor/thor/lib/thor/parser/option.rb +27 -8
  42. data/bundler/lib/bundler/vendor/thor/lib/thor/parser/options.rb +44 -6
  43. data/bundler/lib/bundler/vendor/thor/lib/thor/rake_compat.rb +2 -2
  44. data/bundler/lib/bundler/vendor/thor/lib/thor/runner.rb +40 -30
  45. data/bundler/lib/bundler/vendor/thor/lib/thor/shell/basic.rb +26 -150
  46. data/bundler/lib/bundler/vendor/thor/lib/thor/shell/color.rb +4 -46
  47. data/bundler/lib/bundler/vendor/thor/lib/thor/shell/column_printer.rb +29 -0
  48. data/bundler/lib/bundler/vendor/thor/lib/thor/shell/html.rb +3 -45
  49. data/bundler/lib/bundler/vendor/thor/lib/thor/shell/lcs_diff.rb +49 -0
  50. data/bundler/lib/bundler/vendor/thor/lib/thor/shell/table_printer.rb +134 -0
  51. data/bundler/lib/bundler/vendor/thor/lib/thor/shell/terminal.rb +42 -0
  52. data/bundler/lib/bundler/vendor/thor/lib/thor/shell/wrapped_printer.rb +38 -0
  53. data/bundler/lib/bundler/vendor/thor/lib/thor/shell.rb +1 -1
  54. data/bundler/lib/bundler/vendor/thor/lib/thor/util.rb +8 -7
  55. data/bundler/lib/bundler/vendor/thor/lib/thor/version.rb +1 -1
  56. data/bundler/lib/bundler/vendor/thor/lib/thor.rb +155 -8
  57. data/bundler/lib/bundler/version.rb +1 -1
  58. data/bundler/lib/bundler/yaml_serializer.rb +6 -1
  59. data/bundler/lib/bundler.rb +0 -8
  60. data/lib/rubygems/command.rb +3 -3
  61. data/lib/rubygems/commands/cert_command.rb +1 -1
  62. data/lib/rubygems/commands/contents_command.rb +1 -1
  63. data/lib/rubygems/commands/environment_command.rb +2 -2
  64. data/lib/rubygems/commands/help_command.rb +1 -1
  65. data/lib/rubygems/commands/setup_command.rb +2 -2
  66. data/lib/rubygems/commands/uninstall_command.rb +4 -4
  67. data/lib/rubygems/commands/unpack_command.rb +3 -3
  68. data/lib/rubygems/commands/update_command.rb +1 -1
  69. data/lib/rubygems/config_file.rb +3 -3
  70. data/lib/rubygems/core_ext/kernel_require.rb +1 -1
  71. data/lib/rubygems/dependency_installer.rb +4 -4
  72. data/lib/rubygems/doctor.rb +1 -1
  73. data/lib/rubygems/ext/ext_conf_builder.rb +1 -1
  74. data/lib/rubygems/ext/rake_builder.rb +1 -1
  75. data/lib/rubygems/installer.rb +7 -12
  76. data/lib/rubygems/local_remote_options.rb +1 -1
  77. data/lib/rubygems/package/digest_io.rb +1 -1
  78. data/lib/rubygems/package/tar_header.rb +2 -2
  79. data/lib/rubygems/package/tar_reader.rb +9 -2
  80. data/lib/rubygems/package/tar_writer.rb +1 -1
  81. data/lib/rubygems/package.rb +1 -1
  82. data/lib/rubygems/path_support.rb +1 -1
  83. data/lib/rubygems/platform.rb +6 -4
  84. data/lib/rubygems/remote_fetcher.rb +2 -2
  85. data/lib/rubygems/request.rb +1 -1
  86. data/lib/rubygems/request_set/gem_dependency_api.rb +1 -1
  87. data/lib/rubygems/resolver.rb +3 -3
  88. data/lib/rubygems/security/trust_dir.rb +1 -1
  89. data/lib/rubygems/source/local.rb +2 -1
  90. data/lib/rubygems/source_list.rb +1 -1
  91. data/lib/rubygems/spec_fetcher.rb +2 -2
  92. data/lib/rubygems/specification.rb +21 -13
  93. data/lib/rubygems/specification_policy.rb +6 -6
  94. data/lib/rubygems/uninstaller.rb +2 -2
  95. data/lib/rubygems/user_interaction.rb +2 -2
  96. data/lib/rubygems/util/licenses.rb +48 -0
  97. data/lib/rubygems/validator.rb +1 -1
  98. data/lib/rubygems/version.rb +3 -3
  99. data/lib/rubygems/yaml_serializer.rb +6 -1
  100. data/lib/rubygems.rb +6 -6
  101. data/rubygems-update.gemspec +1 -1
  102. data/test/rubygems/helper.rb +6 -6
  103. data/test/rubygems/test_gem_command_manager.rb +6 -6
  104. data/test/rubygems/test_gem_commands_cert_command.rb +1 -1
  105. data/test/rubygems/test_gem_commands_install_command.rb +2 -2
  106. data/test/rubygems/test_gem_commands_uninstall_command.rb +20 -0
  107. data/test/rubygems/test_gem_ext_builder.rb +1 -1
  108. data/test/rubygems/test_gem_installer.rb +1 -1
  109. data/test/rubygems/test_gem_package_tar_reader.rb +15 -0
  110. data/test/rubygems/test_gem_security_policy.rb +2 -2
  111. data/test/rubygems/test_gem_stream_ui.rb +1 -1
  112. data/test/rubygems/utilities.rb +2 -2
  113. metadata +8 -3
@@ -45,6 +45,7 @@ class Gem::Licenses
45
45
  AdaCore-doc
46
46
  Adobe-2006
47
47
  Adobe-Glyph
48
+ Adobe-Utopia
48
49
  Afmparse
49
50
  Aladdin
50
51
  Apache-1.0
@@ -65,6 +66,7 @@ class Gem::Licenses
65
66
  BSD-3-Clause
66
67
  BSD-3-Clause-Attribution
67
68
  BSD-3-Clause-Clear
69
+ BSD-3-Clause-HP
68
70
  BSD-3-Clause-LBNL
69
71
  BSD-3-Clause-Modification
70
72
  BSD-3-Clause-No-Military-License
@@ -72,6 +74,8 @@ class Gem::Licenses
72
74
  BSD-3-Clause-No-Nuclear-License-2014
73
75
  BSD-3-Clause-No-Nuclear-Warranty
74
76
  BSD-3-Clause-Open-MPI
77
+ BSD-3-Clause-Sun
78
+ BSD-3-Clause-flex
75
79
  BSD-4-Clause
76
80
  BSD-4-Clause-Shortened
77
81
  BSD-4-Clause-UC
@@ -79,8 +83,10 @@ class Gem::Licenses
79
83
  BSD-4.3TAHOE
80
84
  BSD-Advertising-Acknowledgement
81
85
  BSD-Attribution-HPND-disclaimer
86
+ BSD-Inferno-Nettverk
82
87
  BSD-Protection
83
88
  BSD-Source-Code
89
+ BSD-Systemics
84
90
  BSL-1.0
85
91
  BUSL-1.1
86
92
  Baekmuk
@@ -184,11 +190,13 @@ class Gem::Licenses
184
190
  Community-Spec-1.0
185
191
  Condor-1.1
186
192
  Cornell-Lossless-JPEG
193
+ Cronyx
187
194
  Crossword
188
195
  CrystalStacker
189
196
  Cube
190
197
  D-FSL-1.0
191
198
  DL-DE-BY-2.0
199
+ DL-DE-ZERO-2.0
192
200
  DOC
193
201
  DRL-1.0
194
202
  DSDP
@@ -208,6 +216,7 @@ class Gem::Licenses
208
216
  Entessa
209
217
  ErlPL-1.1
210
218
  Eurosym
219
+ FBM
211
220
  FDK-AAC
212
221
  FSFAP
213
222
  FSFUL
@@ -215,9 +224,11 @@ class Gem::Licenses
215
224
  FSFULLRWD
216
225
  FTL
217
226
  Fair
227
+ Ferguson-Twofish
218
228
  Frameworx-1.0
219
229
  FreeBSD-DOC
220
230
  FreeImage
231
+ Furuseth
221
232
  GD
222
233
  GFDL-1.1
223
234
  GFDL-1.1-invariants-only
@@ -266,9 +277,17 @@ class Gem::Licenses
266
277
  Glulxe
267
278
  Graphics-Gems
268
279
  HP-1986
280
+ HP-1989
269
281
  HPND
282
+ HPND-DEC
270
283
  HPND-Markus-Kuhn
284
+ HPND-Pbmplus
285
+ HPND-UC
286
+ HPND-doc
287
+ HPND-doc-sell
271
288
  HPND-export-US
289
+ HPND-export-US-modify
290
+ HPND-sell-regexpr
272
291
  HPND-sell-variant
273
292
  HPND-sell-variant-MIT-disclaimer
274
293
  HTMLTIDY
@@ -294,6 +313,7 @@ class Gem::Licenses
294
313
  JSON
295
314
  Jam
296
315
  JasPer-2.0
316
+ Kastrup
297
317
  Kazlib
298
318
  Knuth-CTAN
299
319
  LAL-1.2
@@ -333,6 +353,7 @@ class Gem::Licenses
333
353
  Linux-man-pages-copyleft
334
354
  Linux-man-pages-copyleft-2-para
335
355
  Linux-man-pages-copyleft-var
356
+ Lucida-Bitmap-Fonts
336
357
  MIT
337
358
  MIT-0
338
359
  MIT-CMU
@@ -343,7 +364,10 @@ class Gem::Licenses
343
364
  MIT-enna
344
365
  MIT-feh
345
366
  MIT-open-group
367
+ MIT-testregex
346
368
  MITNFA
369
+ MMIXware
370
+ MPEG-SSG
347
371
  MPL-1.0
348
372
  MPL-1.1
349
373
  MPL-2.0
@@ -354,6 +378,7 @@ class Gem::Licenses
354
378
  MTLL
355
379
  MakeIndex
356
380
  Martin-Birgmeier
381
+ McPhee-slideshow
357
382
  Minpack
358
383
  MirOS
359
384
  Motosoto
@@ -436,6 +461,7 @@ class Gem::Licenses
436
461
  OSL-3.0
437
462
  OpenPBS-2.3
438
463
  OpenSSL
464
+ PADL
439
465
  PDDL-1.0
440
466
  PHP-3.0
441
467
  PHP-3.01
@@ -464,11 +490,13 @@ class Gem::Licenses
464
490
  SGI-B-1.0
465
491
  SGI-B-1.1
466
492
  SGI-B-2.0
493
+ SGI-OpenGL
467
494
  SGP4
468
495
  SHL-0.5
469
496
  SHL-0.51
470
497
  SISSL
471
498
  SISSL-1.2
499
+ SL
472
500
  SMLNJ
473
501
  SMPPL
474
502
  SNIA
@@ -483,6 +511,7 @@ class Gem::Licenses
483
511
  Sendmail-8.23
484
512
  SimPL-2.0
485
513
  Sleepycat
514
+ Soundex
486
515
  Spencer-86
487
516
  Spencer-94
488
517
  Spencer-99
@@ -499,12 +528,14 @@ class Gem::Licenses
499
528
  TPDL
500
529
  TPL-1.0
501
530
  TTWL
531
+ TTYP0
502
532
  TU-Berlin-1.0
503
533
  TU-Berlin-2.0
504
534
  TermReadKey
505
535
  UCAR
506
536
  UCL-1.0
507
537
  UPL-1.0
538
+ URT-RLE
508
539
  Unicode-DFS-2015
509
540
  Unicode-DFS-2016
510
541
  Unicode-TOU
@@ -534,6 +565,7 @@ class Gem::Licenses
534
565
  ZPL-2.0
535
566
  ZPL-2.1
536
567
  Zed
568
+ Zeeff
537
569
  Zend-2.0
538
570
  Zimbra-1.3
539
571
  Zimbra-1.4
@@ -541,6 +573,7 @@ class Gem::Licenses
541
573
  blessing
542
574
  bzip2-1.0.5
543
575
  bzip2-1.0.6
576
+ check-cvs
544
577
  checkmk
545
578
  copyleft-next-0.3.0
546
579
  copyleft-next-0.3.1
@@ -551,6 +584,7 @@ class Gem::Licenses
551
584
  eCos-2.0
552
585
  eGenix
553
586
  etalab-2.0
587
+ fwlw
554
588
  gSOAP-1.3b
555
589
  gnuplot
556
590
  iMatix
@@ -558,13 +592,20 @@ class Gem::Licenses
558
592
  libselinux-1.0
559
593
  libtiff
560
594
  libutil-David-Nugent
595
+ lsof
596
+ magaz
561
597
  metamail
562
598
  mpi-permissive
563
599
  mpich2
564
600
  mplus
601
+ pnmstitch
565
602
  psfrag
566
603
  psutils
604
+ python-ldap
567
605
  snprintf
606
+ ssh-keyscan
607
+ swrule
608
+ ulem
568
609
  w3m
569
610
  wxWindows
570
611
  xinetd
@@ -580,6 +621,7 @@ class Gem::Licenses
580
621
  Autoconf-exception-2.0
581
622
  Autoconf-exception-3.0
582
623
  Autoconf-exception-generic
624
+ Autoconf-exception-generic-3.0
583
625
  Autoconf-exception-macro
584
626
  Bison-exception-2.2
585
627
  Bootloader-exception
@@ -590,8 +632,10 @@ class Gem::Licenses
590
632
  Fawkes-Runtime-exception
591
633
  Font-exception-2.0
592
634
  GCC-exception-2.0
635
+ GCC-exception-2.0-note
593
636
  GCC-exception-3.1
594
637
  GNAT-exception
638
+ GNU-compiler-exception
595
639
  GPL-3.0-interface-exception
596
640
  GPL-3.0-linking-exception
597
641
  GPL-3.0-linking-source-exception
@@ -614,10 +658,13 @@ class Gem::Licenses
614
658
  Qt-GPL-exception-1.0
615
659
  Qt-LGPL-exception-1.1
616
660
  Qwt-exception-1.0
661
+ SANE-exception
617
662
  SHL-2.0
618
663
  SHL-2.1
619
664
  SWI-exception
620
665
  Swift-exception
666
+ Texinfo-exception
667
+ UBDL-exception
621
668
  Universal-FOSS-exception-1.0
622
669
  WxWindows-exception-3.1
623
670
  cryptsetup-OpenSSL-exception
@@ -628,6 +675,7 @@ class Gem::Licenses
628
675
  libpri-OpenH323-exception
629
676
  mif-exception
630
677
  openvpn-openssl-exception
678
+ stunnel-exception
631
679
  u-boot-exception-2.0
632
680
  vsftpd-openssl-exception
633
681
  x11vnc-openssl-exception
@@ -108,7 +108,7 @@ class Gem::Validator
108
108
  end
109
109
 
110
110
  good.each do |entry, data|
111
- next unless data # HACK `gem check -a mkrf`
111
+ next unless data # HACK: `gem check -a mkrf`
112
112
 
113
113
  source = File.join gem_directory, entry["path"]
114
114
 
@@ -377,7 +377,7 @@ class Gem::Version
377
377
  return lhs <=> rhs
378
378
  end
379
379
 
380
- return 0
380
+ 0
381
381
  end
382
382
 
383
383
  def canonical_segments
@@ -405,7 +405,7 @@ class Gem::Version
405
405
  # since this version object is cached in @@all, its @segments should be frozen
406
406
 
407
407
  @segments ||= @version.scan(/[0-9]+|[a-z]+/i).map do |s|
408
- /^\d+$/ =~ s ? s.to_i : s
408
+ /^\d+$/.match?(s) ? s.to_i : s
409
409
  end.freeze
410
410
  end
411
411
 
@@ -413,6 +413,6 @@ class Gem::Version
413
413
  string_start = _segments.index {|s| s.is_a?(String) }
414
414
  string_segments = segments
415
415
  numeric_segments = string_segments.slice!(0, string_start || string_segments.size)
416
- return numeric_segments, string_segments
416
+ [numeric_segments, string_segments]
417
417
  end
418
418
  end
@@ -17,7 +17,11 @@ module Gem
17
17
  if v.is_a?(Hash)
18
18
  yaml << dump_hash(v).gsub(/^(?!$)/, " ") # indent all non-empty lines
19
19
  elsif v.is_a?(Array) # Expected to be array of strings
20
- yaml << "\n- " << v.map {|s| s.to_s.gsub(/\s+/, " ").inspect }.join("\n- ") << "\n"
20
+ if v.empty?
21
+ yaml << " []\n"
22
+ else
23
+ yaml << "\n- " << v.map {|s| s.to_s.gsub(/\s+/, " ").inspect }.join("\n- ") << "\n"
24
+ end
21
25
  else
22
26
  yaml << " " << v.to_s.gsub(/\s+/, " ").inspect << "\n"
23
27
  end
@@ -63,6 +67,7 @@ module Gem
63
67
  last_empty_key = key
64
68
  last_hash = stack[depth]
65
69
  else
70
+ val = [] if val == "[]" # empty array
66
71
  stack[depth][key] = val
67
72
  end
68
73
  elsif match = ARRAY_REGEX.match(line)
data/lib/rubygems.rb CHANGED
@@ -9,7 +9,7 @@
9
9
  require "rbconfig"
10
10
 
11
11
  module Gem
12
- VERSION = "3.4.21"
12
+ VERSION = "3.4.22"
13
13
  end
14
14
 
15
15
  # Must be first since it unloads the prelude from 1.9.2
@@ -211,7 +211,7 @@ module Gem
211
211
  end
212
212
  end
213
213
 
214
- return true
214
+ true
215
215
  end
216
216
 
217
217
  def self.needs
@@ -499,7 +499,7 @@ An Array (#{env.inspect}) was passed in from #{caller[3]}
499
499
  # the spec dirs directly, so we prune.
500
500
  files.uniq! if check_load_path
501
501
 
502
- return files
502
+ files
503
503
  end
504
504
 
505
505
  def self.find_files_from_load_path(glob) # :nodoc:
@@ -534,7 +534,7 @@ An Array (#{env.inspect}) was passed in from #{caller[3]}
534
534
  # the spec dirs directly, so we prune.
535
535
  files.uniq! if check_load_path
536
536
 
537
- return files
537
+ files
538
538
  end
539
539
 
540
540
  ##
@@ -809,7 +809,7 @@ An Array (#{env.inspect}) was passed in from #{caller[3]}
809
809
  if @ruby.nil?
810
810
  @ruby = RbConfig.ruby
811
811
 
812
- @ruby = "\"#{@ruby}\"" if @ruby =~ /\s/
812
+ @ruby = "\"#{@ruby}\"" if /\s/.match?(@ruby)
813
813
  end
814
814
 
815
815
  @ruby
@@ -1023,7 +1023,7 @@ An Array (#{env.inspect}) was passed in from #{caller[3]}
1023
1023
  # Skip older versions of the GemCutter plugin: Its commands are in
1024
1024
  # RubyGems proper now.
1025
1025
 
1026
- next if plugin =~ /gemcutter-0\.[0-3]/
1026
+ next if /gemcutter-0\.[0-3]/.match?(plugin)
1027
1027
 
1028
1028
  begin
1029
1029
  load plugin
@@ -2,7 +2,7 @@
2
2
 
3
3
  Gem::Specification.new do |s|
4
4
  s.name = "rubygems-update"
5
- s.version = "3.4.21"
5
+ s.version = "3.4.22"
6
6
  s.authors = ["Jim Weirich", "Chad Fowler", "Eric Hodel", "Luis Lavena", "Aaron Patterson", "Samuel Giddins", "André Arko", "Evan Phoenix", "Hiroshi SHIBATA"]
7
7
  s.email = ["", "", "drbrain@segment7.net", "luislavena@gmail.com", "aaron@tenderlovemaking.com", "segiddins@segiddins.me", "andre@arko.net", "evan@phx.io", "hsbt@ruby-lang.org"]
8
8
 
@@ -576,7 +576,7 @@ class Gem::TestCase < Test::Unit::TestCase
576
576
  head = Gem::Util.popen(@git, "rev-parse", "HEAD").strip
577
577
  end
578
578
 
579
- return name, git_spec.version, directory, head
579
+ [name, git_spec.version, directory, head]
580
580
  end
581
581
 
582
582
  ##
@@ -734,7 +734,7 @@ class Gem::TestCase < Test::Unit::TestCase
734
734
 
735
735
  Gem::Specification.reset
736
736
 
737
- return spec
737
+ spec
738
738
  end
739
739
 
740
740
  ##
@@ -869,7 +869,7 @@ class Gem::TestCase < Test::Unit::TestCase
869
869
  FileUtils.rm spec.spec_file
870
870
  end
871
871
 
872
- return spec
872
+ spec
873
873
  end
874
874
 
875
875
  ##
@@ -1047,7 +1047,7 @@ Also, a list:
1047
1047
  spec_fetcher.prerelease_specs[@uri] << spec.name_tuple
1048
1048
  end
1049
1049
 
1050
- # HACK for test_download_to_cache
1050
+ # HACK: for test_download_to_cache
1051
1051
  unless Gem::RemoteFetcher === @fetcher
1052
1052
  v = Gem.marshal_version
1053
1053
 
@@ -1345,7 +1345,7 @@ Also, a list:
1345
1345
 
1346
1346
  def escape_path(*path)
1347
1347
  path = File.join(*path)
1348
- if %r{\A[-+:/=@,.\w]+\z} =~ path
1348
+ if %r{\A[-+:/=@,.\w]+\z}.match?(path)
1349
1349
  path
1350
1350
  else
1351
1351
  "\"#{path.gsub(/[`$"]/, '\\&')}\""
@@ -1460,7 +1460,7 @@ Also, a list:
1460
1460
  io.write vendor_spec.to_ruby
1461
1461
  end
1462
1462
 
1463
- return name, vendor_spec.version, directory
1463
+ [name, vendor_spec.version, directory]
1464
1464
  end
1465
1465
 
1466
1466
  ##
@@ -177,7 +177,7 @@ class TestGemCommandManager < Gem::TestCase
177
177
  assert_match(/invalid option: --bad-arg/i, @ui.error)
178
178
  end
179
179
 
180
- # HACK move to install command test
180
+ # HACK: move to install command test
181
181
  def test_process_args_install
182
182
  #capture all install options
183
183
  use_ui @ui do
@@ -228,7 +228,7 @@ class TestGemCommandManager < Gem::TestCase
228
228
  end
229
229
  end
230
230
 
231
- # HACK move to uninstall command test
231
+ # HACK: move to uninstall command test
232
232
  def test_process_args_uninstall
233
233
  #capture all uninstall options
234
234
  check_options = nil
@@ -248,7 +248,7 @@ class TestGemCommandManager < Gem::TestCase
248
248
  assert_equal Gem::Requirement.new("3.0"), check_options[:version]
249
249
  end
250
250
 
251
- # HACK move to check command test
251
+ # HACK: move to check command test
252
252
  def test_process_args_check
253
253
  #capture all check options
254
254
  check_options = nil
@@ -267,7 +267,7 @@ class TestGemCommandManager < Gem::TestCase
267
267
  assert_equal true, check_options[:alien]
268
268
  end
269
269
 
270
- # HACK move to build command test
270
+ # HACK: move to build command test
271
271
  def test_process_args_build
272
272
  #capture all build options
273
273
  check_options = nil
@@ -286,7 +286,7 @@ class TestGemCommandManager < Gem::TestCase
286
286
  assert_equal "foobar.rb", check_options[:args].first
287
287
  end
288
288
 
289
- # HACK move to query command test
289
+ # HACK: move to query command test
290
290
  def test_process_args_query
291
291
  #capture all query options
292
292
  check_options = nil
@@ -327,7 +327,7 @@ class TestGemCommandManager < Gem::TestCase
327
327
  assert_equal :both, check_options[:domain]
328
328
  end
329
329
 
330
- # HACK move to update command test
330
+ # HACK: move to update command test
331
331
  def test_process_args_update
332
332
  #capture all update options
333
333
  check_options = nil
@@ -47,7 +47,7 @@ class TestGemCommandsCertCommand < Gem::TestCase
47
47
 
48
48
  matches = @cmd.certificates_matching ""
49
49
 
50
- # HACK OpenSSL::X509::Certificate#== is Object#==, so do this the hard way
50
+ # HACK: OpenSSL::X509::Certificate#== is Object#==, so do this the hard way
51
51
  match = matches.next
52
52
  assert_equal ALTERNATE_CERT.to_pem, match.first.to_pem
53
53
  assert_equal @trust_dir.cert_path(ALTERNATE_CERT), match.last
@@ -233,7 +233,7 @@ ERROR: Could not find a valid gem 'bar' (= 0.5) (required by 'foo' (>= 0)) in a
233
233
  assert_equal 2, e.exit_code
234
234
  end
235
235
 
236
- # HACK no repository was checked
236
+ # HACK: no repository was checked
237
237
  assert_match(/ould not find a valid gem 'no_such_gem'/, @ui.error)
238
238
  end
239
239
 
@@ -252,7 +252,7 @@ ERROR: Could not find a valid gem 'bar' (= 0.5) (required by 'foo' (>= 0)) in a
252
252
  assert_equal 2, e.exit_code
253
253
  end
254
254
 
255
- # HACK no repository was checked
255
+ # HACK: no repository was checked
256
256
  assert_match(/ould not find a valid gem 'no_such_gem'/, @ui.error)
257
257
  end
258
258
 
@@ -229,6 +229,26 @@ class TestGemCommandsUninstallCommand < Gem::InstallerTestCase
229
229
  assert File.exist? File.join(@gemhome, "bin", "executable")
230
230
  end
231
231
 
232
+ def test_execute_with_multiple_version_specified_as_colon
233
+ initial_install
234
+
235
+ ui = Gem::MockGemUi.new "y\n"
236
+
237
+ util_make_gems
238
+
239
+ assert_equal 3, Gem::Specification.find_all_by_name("a").length
240
+
241
+ @cmd.options[:force] = true
242
+ @cmd.options[:args] = ["a:1", "a:2"]
243
+
244
+ use_ui ui do
245
+ @cmd.execute
246
+ end
247
+
248
+ assert_equal 1, Gem::Specification.find_all_by_name("a").length
249
+ assert_equal Gem::Version.new("3.a"), Gem::Specification.find_by_name("a").version
250
+ end
251
+
232
252
  def test_uninstall_selection
233
253
  ui = Gem::MockGemUi.new "1\n"
234
254
 
@@ -52,7 +52,7 @@ install:
52
52
  assert_match %r{DESTDIR\\=#{ENV['DESTDIR']}$}, results
53
53
  assert_match %r{DESTDIR\\=#{ENV['DESTDIR']} install$}, results
54
54
 
55
- if /nmake/ !~ results
55
+ unless /nmake/.match?(results)
56
56
  assert_match %r{^clean: destination$}, results
57
57
  assert_match %r{^all: destination$}, results
58
58
  assert_match %r{^install: destination$}, results
@@ -498,7 +498,7 @@ gem 'other', version
498
498
 
499
499
  wrapper = File.read installed_exec
500
500
  assert_match %r{generated by RubyGems}, wrapper
501
- # HACK some gems don't have #! in their executables, restore 2008/06
501
+ # HACK: some gems don't have #! in their executables, restore 2008/06
502
502
  #assert_no_match %r|generated by RubyGems|, wrapper
503
503
  end
504
504
 
@@ -25,6 +25,21 @@ class TestGemPackageTarReader < Gem::Package::TarTestCase
25
25
  io.close!
26
26
  end
27
27
 
28
+ def test_each_with_not_a_tar
29
+ text = "Hello, world!!?\n" * 256 # 4 KiB
30
+ io = TempIO.new text
31
+
32
+ Gem::Package::TarReader.new io do |tar|
33
+ assert_raise Gem::Package::TarInvalidError do
34
+ tar.each do
35
+ flunk "TarInvalidError was expected to occur, but an entry was found"
36
+ end
37
+ end
38
+ end
39
+ ensure
40
+ io.close!
41
+ end
42
+
28
43
  def test_rewind
29
44
  content = ("a".."z").to_a.join(" ")
30
45
 
@@ -33,7 +33,7 @@ class TestGemSecurityPolicy < Gem::TestCase
33
33
  end
34
34
 
35
35
  @digest = OpenSSL::Digest.new Gem::Security::DIGEST_NAME
36
- @trust_dir = Gem::Security.trust_dir.dir # HACK use the object
36
+ @trust_dir = Gem::Security.trust_dir.dir # HACK: use the object
37
37
 
38
38
  @no = Gem::Security::NoSecurity
39
39
  @almost_no = Gem::Security::AlmostNoSecurity
@@ -530,6 +530,6 @@ class TestGemSecurityPolicy < Gem::TestCase
530
530
  digests = { Gem::Security::DIGEST_NAME => { 0 => data } }
531
531
  signatures = { 0 => sign(data, key) }
532
532
 
533
- return digests, signatures
533
+ [digests, signatures]
534
534
  end
535
535
  end if Gem::HAVE_OPENSSL
@@ -14,7 +14,7 @@ class TestGemStreamUI < Gem::TestCase
14
14
 
15
15
  def tty?
16
16
  @tty = true unless defined? @tty
17
- return @tty
17
+ @tty
18
18
  end
19
19
 
20
20
  alias_method :isatty, :tty?
@@ -120,7 +120,7 @@ class Gem::FakeFetcher
120
120
  path = path.to_s
121
121
  @paths << path
122
122
 
123
- raise ArgumentError, "need full URI" unless path =~ %r{^http://}
123
+ raise ArgumentError, "need full URI" unless %r{^http://}.match?(path)
124
124
 
125
125
  unless @data.key? path
126
126
  raise Gem::RemoteFetcher::FetchError.new("no data for #{path}", path)
@@ -141,7 +141,7 @@ class Gem::FakeFetcher
141
141
 
142
142
  path = File.join path, name
143
143
 
144
- if source_uri =~ /^http/
144
+ if /^http/.match?(source_uri)
145
145
  File.open(path, "wb") do |f|
146
146
  f.write fetch_path(File.join(source_uri, "gems", name))
147
147
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rubygems-update
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.4.21
4
+ version: 3.4.22
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jim Weirich
@@ -16,7 +16,7 @@ authors:
16
16
  autorequire:
17
17
  bindir: exe
18
18
  cert_chain: []
19
- date: 2023-10-17 00:00:00.000000000 Z
19
+ date: 2023-11-09 00:00:00.000000000 Z
20
20
  dependencies: []
21
21
  description: |-
22
22
  A package (also known as a library) contains a set of functionality
@@ -384,7 +384,12 @@ files:
384
384
  - bundler/lib/bundler/vendor/thor/lib/thor/shell.rb
385
385
  - bundler/lib/bundler/vendor/thor/lib/thor/shell/basic.rb
386
386
  - bundler/lib/bundler/vendor/thor/lib/thor/shell/color.rb
387
+ - bundler/lib/bundler/vendor/thor/lib/thor/shell/column_printer.rb
387
388
  - bundler/lib/bundler/vendor/thor/lib/thor/shell/html.rb
389
+ - bundler/lib/bundler/vendor/thor/lib/thor/shell/lcs_diff.rb
390
+ - bundler/lib/bundler/vendor/thor/lib/thor/shell/table_printer.rb
391
+ - bundler/lib/bundler/vendor/thor/lib/thor/shell/terminal.rb
392
+ - bundler/lib/bundler/vendor/thor/lib/thor/shell/wrapped_printer.rb
388
393
  - bundler/lib/bundler/vendor/thor/lib/thor/util.rb
389
394
  - bundler/lib/bundler/vendor/thor/lib/thor/version.rb
390
395
  - bundler/lib/bundler/vendor/tsort/LICENSE.txt
@@ -873,7 +878,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
873
878
  - !ruby/object:Gem::Version
874
879
  version: '0'
875
880
  requirements: []
876
- rubygems_version: 3.4.21
881
+ rubygems_version: 3.4.22
877
882
  signing_key:
878
883
  specification_version: 4
879
884
  summary: RubyGems is a package management framework for Ruby. This gem is downloaded