diff options
Diffstat (limited to 'lib/rubygems/commands/query_command.rb')
-rw-r--r-- | lib/rubygems/commands/query_command.rb | 15 |
1 files changed, 9 insertions, 6 deletions
diff --git a/lib/rubygems/commands/query_command.rb b/lib/rubygems/commands/query_command.rb index 29e53065e7..d82f8aea60 100644 --- a/lib/rubygems/commands/query_command.rb +++ b/lib/rubygems/commands/query_command.rb @@ -80,10 +80,12 @@ class Gem::Commands::QueryCommand < Gem::Command exit_code |= 1 end - raise Gem::SystemExitException, exit_code + terminate_interaction exit_code end - dep = Gem::Dependency.new name, Gem::Requirement.default + req = Gem::Requirement.default + # TODO: deprecate for real + dep = Deprecate.skip_during { Gem::Dependency.new name, req } if local? then if prerelease and not both? then @@ -96,7 +98,9 @@ class Gem::Commands::QueryCommand < Gem::Command say end - specs = Gem.source_index.search dep + specs = Gem::Specification.find_all { |s| + s.name =~ name and req =~ s.version + } spec_tuples = specs.map do |spec| [[spec.name, spec.version, spec.original_platform, spec], :local] @@ -129,9 +133,8 @@ class Gem::Commands::QueryCommand < Gem::Command ## # Check if gem +name+ version +version+ is installed. - def installed?(name, version = Gem::Requirement.default) - dep = Gem::Dependency.new name, version - !Gem.source_index.search(dep).empty? + def installed?(name, req = Gem::Requirement.default) + Gem::Specification.any? { |s| s.name =~ name and req =~ s.version } end def output_query_results(spec_tuples) |