Extended maintenance of Ruby 1.9.3 ended on February 23, 2015. Read more
# File rubygems/commands/query_command.rb, line 13 def initialize(name = 'query', summary = 'Query gem information in local or remote repositories') super name, summary, :name => //, :domain => :local, :details => false, :versions => true, :installed => false, :version => Gem::Requirement.default add_option('-i', '--[no-]installed', 'Check for installed gem') do |value, options| options[:installed] = value end add_version_option command, "for use with --installed" add_option('-n', '--name-matches REGEXP', 'Name of gem(s) to query on matches the', 'provided REGEXP') do |value, options| options[:name] = /#{value}/i end add_option('-d', '--[no-]details', 'Display detailed information of gem(s)') do |value, options| options[:details] = value end add_option( '--[no-]versions', 'Display only gem names') do |value, options| options[:versions] = value options[:details] = false unless value end add_option('-a', '--all', 'Display all gem versions') do |value, options| options[:all] = value end add_option( '--[no-]prerelease', 'Display prerelease versions') do |value, options| options[:prerelease] = value end add_local_remote_options end
# File rubygems/commands/query_command.rb, line 60 def execute exit_code = 0 name = options[:name] prerelease = options[:prerelease] if options[:installed] then if name.source.empty? then alert_error "You must specify a gem name" exit_code |= 4 elsif installed? name, options[:version] then say "true" else say "false" exit_code |= 1 end terminate_interaction exit_code end req = Gem::Requirement.default # TODO: deprecate for real dep = Gem::Deprecate.skip_during { Gem::Dependency.new name, req } if local? then if prerelease and not both? then alert_warning "prereleases are always shown locally" end if ui.outs.tty? or both? then say say "*** LOCAL GEMS ***" say end 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] end output_query_results spec_tuples end if remote? then if ui.outs.tty? or both? then say say "*** REMOTE GEMS ***" say end all = options[:all] fetcher = Gem::SpecFetcher.fetcher spec_tuples = fetcher.find_matching dep, all, false, prerelease spec_tuples += fetcher.find_matching dep, false, false, true if prerelease and all output_query_results spec_tuples end end
Commenting is here to help enhance the documentation. For example, code samples, or clarification of the documentation.
If you have questions about Ruby or the documentation, please post to one of the Ruby mailing lists. You will get better, faster, help that way.
If you wish to post a correction of the docs, please do so, but also file bug report so that it can be corrected for the next release. Thank you.
If you want to help improve the Ruby documentation, please visit Documenting-ruby.org.