summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid Rodríguez <[email protected]>2024-12-12 17:42:02 +0100
committergit <[email protected]>2024-12-16 18:09:54 +0000
commitd0968b1b4c402a355f207db10abbb067ee3d3377 (patch)
tree9986a258e1896e8a536ae5fe44e2d41b9c093581
parentc4d35040f4720b02856daaea4d4580aeda0af268 (diff)
[rubygems/rubygems] Fix `gem info` tagging some non default gems as default
https://github.com/rubygems/rubygems/commit/7585825c57
-rw-r--r--lib/rubygems/query_utils.rb2
-rw-r--r--test/rubygems/test_gem_commands_info_command.rb35
2 files changed, 36 insertions, 1 deletions
diff --git a/lib/rubygems/query_utils.rb b/lib/rubygems/query_utils.rb
index ea05969422..9849370b1a 100644
--- a/lib/rubygems/query_utils.rb
+++ b/lib/rubygems/query_utils.rb
@@ -311,7 +311,7 @@ module Gem::QueryUtils
label = "Installed at"
specs.each do |s|
version = s.version.to_s
- default = ", default" if s.default_gem?
+ default = s.default_gem? ? ", default" : ""
entry << "\n" << " #{label} (#{version}#{default}): #{s.base_dir}"
label = " " * label.length
end
diff --git a/test/rubygems/test_gem_commands_info_command.rb b/test/rubygems/test_gem_commands_info_command.rb
index bca563079e..f020d380d2 100644
--- a/test/rubygems/test_gem_commands_info_command.rb
+++ b/test/rubygems/test_gem_commands_info_command.rb
@@ -67,4 +67,39 @@ class TestGemCommandsInfoCommand < Gem::TestCase
assert_equal expected, @ui.output
end
+
+ def test_execute_with_default_gem
+ @gem = new_default_spec("foo", "1.0.0", nil, "default/gem.rb")
+
+ install_default_gems @gem
+
+ @cmd.handle_options %w[foo]
+
+ use_ui @ui do
+ @cmd.execute
+ end
+
+ assert_include(@ui.output, "#{@gem.name} (#{@gem.version})\n")
+ assert_include(@ui.output, "Installed at (default): #{@gem.base_dir}\n")
+ assert_match "", @ui.error
+ end
+
+ def test_execute_with_default_gem_and_regular_gem
+ @default = new_default_spec("foo", "1.0.1", nil, "default/gem.rb")
+
+ install_default_gems @default
+
+ @regular = gem "foo", "1.0.0"
+
+ @cmd.handle_options %w[foo]
+
+ use_ui @ui do
+ @cmd.execute
+ end
+
+ assert_include(@ui.output, "foo (1.0.1, 1.0.0)\n")
+ assert_include(@ui.output, "Installed at (1.0.1, default): #{@default.base_dir}\n")
+ assert_include(@ui.output, " (1.0.0): #{@default.base_dir}\n")
+ assert_match "", @ui.error
+ end
end