diff options
-rw-r--r-- | lib/rubygems/query_utils.rb | 4 | ||||
-rw-r--r-- | test/rubygems/test_gem_commands_info_command.rb | 26 |
2 files changed, 28 insertions, 2 deletions
diff --git a/lib/rubygems/query_utils.rb b/lib/rubygems/query_utils.rb index a502717f94..c72955f83b 100644 --- a/lib/rubygems/query_utils.rb +++ b/lib/rubygems/query_utils.rb @@ -151,7 +151,7 @@ module Gem::QueryUtils fetcher.detect(specs_type) { true } else fetcher.detect(specs_type) do |name_tuple| - name === name_tuple.name + name === name_tuple.name && options[:version].satisfied_by?(name_tuple.version) end end @@ -159,7 +159,7 @@ module Gem::QueryUtils end def specs_type - if options[:all] + if options[:all] || options[:version].specific? if options[:prerelease] :complete else diff --git a/test/rubygems/test_gem_commands_info_command.rb b/test/rubygems/test_gem_commands_info_command.rb index b18b405da6..1c9ab7b07c 100644 --- a/test/rubygems/test_gem_commands_info_command.rb +++ b/test/rubygems/test_gem_commands_info_command.rb @@ -40,4 +40,30 @@ class TestGemCommandsInfoCommand < Gem::TestCase assert_match %r{#{@gem.summary}\n}, @ui.output assert_match "", @ui.error end + + def test_execute_with_version_flag + spec_fetcher do |fetcher| + fetcher.spec "coolgem", "1.0" + fetcher.spec "coolgem", "2.0" + end + + @cmd.handle_options %w[coolgem --remote --version 1.0] + + use_ui @ui do + @cmd.execute + end + + expected = <<-EOF + +*** REMOTE GEMS *** + +coolgem (1.0) + Author: A User + Homepage: http://example.com + + this is a summary + EOF + + assert_equal expected, @ui.output + end end |