rubygems-update 3.4.21 → 3.4.22

Sign up to get free protection for your applications and to get access to all the features.
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