diff options
-rw-r--r-- | lib/rubygems/commands/query_command.rb | 57 |
1 files changed, 52 insertions, 5 deletions
@@ -1,15 +1,25 @@ require 'rubygems/command' require 'rubygems/local_remote_options' require 'rubygems/source_info_cache' class Gem::Commands::QueryCommand < Gem::Command include Gem::LocalRemoteOptions def initialize(name = 'query', summary = 'Query gem information in local or remote repositories') super name, summary, - :name => /.*/, :domain => :local, :details => false, :versions => true add_option('-n', '--name-matches REGEXP', 'Name of gem(s) to query on matches the', @@ -28,33 +38,70 @@ class Gem::Commands::QueryCommand < Gem::Command options[:details] = false unless value end add_local_remote_options end def defaults_str # :nodoc: - "--local --name-matches '.*' --no-details --versions" end def execute name = options[:name] if local? then say say "*** LOCAL GEMS ***" say - output_query_results Gem.cache.search(name) end if remote? then say say "*** REMOTE GEMS ***" say - output_query_results Gem::SourceInfoCache.search(name) end end private def output_query_results(gemspecs) output = [] gem_list_with_version = {} @@ -98,7 +145,7 @@ class Gem::Commands::QueryCommand < Gem::Command ## # Used for wrapping and indenting text - # def format_text(text, wrap, indent=0) result = [] work = text.dup |