Parent

Methods

Included Modules

Class Index [+]

Quicksearch

Gem::Commands::ContentsCommand

Public Class Methods

new() click to toggle source
    # File lib/rubygems/commands/contents_command.rb, line 8
 8:   def initialize
 9:     super 'contents', 'Display the contents of the installed gems',
10:           :specdirs => [], :lib_only => false, :prefix => true
11: 
12:     add_version_option
13: 
14:     add_option(      '--all',
15:                "Contents for all gems") do |all, options|
16:       options[:all] = all
17:     end
18: 
19:     add_option('-s', '--spec-dir a,b,c', Array,
20:                "Search for gems under specific paths") do |spec_dirs, options|
21:       options[:specdirs] = spec_dirs
22:     end
23: 
24:     add_option('-l', '--[no-]lib-only',
25:                "Only return files in the Gem's lib_dirs") do |lib_only, options|
26:       options[:lib_only] = lib_only
27:     end
28: 
29:     add_option(      '--[no-]prefix',
30:                "Don't include installed path prefix") do |prefix, options|
31:       options[:prefix] = prefix
32:     end
33:   end

Public Instance Methods

execute() click to toggle source
    # File lib/rubygems/commands/contents_command.rb, line 47
47:   def execute
48:     version = options[:version] || Gem::Requirement.default
49: 
50:     spec_dirs = options[:specdirs].map do |i|
51:       [i, File.join(i, "specifications")]
52:     end.flatten
53: 
54:     path_kind = if spec_dirs.empty? then
55:                   spec_dirs = Gem::SourceIndex.installed_spec_directories
56:                   "default gem paths"
57:                 else
58:                   "specified path"
59:                 end
60: 
61:     si = Gem::SourceIndex.from_gems_in(*spec_dirs)
62: 
63:     gem_names = if options[:all] then
64:                   si.map { |_, spec| spec.name }
65:                 else
66:                   get_all_gem_names
67:                 end
68: 
69:     gem_names.each do |name|
70:       gem_spec = si.find_name(name, version).last
71: 
72:       unless gem_spec then
73:         say "Unable to find gem '#{name}' in #{path_kind}"
74: 
75:         if Gem.configuration.verbose then
76:           say "\nDirectories searched:"
77:           spec_dirs.each { |dir| say dir }
78:         end
79: 
80:         terminate_interaction 1 if gem_names.length == 1
81:       end
82: 
83:       files = options[:lib_only] ? gem_spec.lib_files : gem_spec.files
84: 
85:       files.each do |f|
86:         path = if options[:prefix] then
87:                  File.join gem_spec.full_gem_path, f
88:                else
89:                  f
90:                end
91: 
92:         say path
93:       end
94:     end
95:   end

Disabled; run with --debug to generate this.

[Validate]

Generated with the Darkfish Rdoc Generator 1.1.6.