Class Methods
::
lib/rubygems/commands/contents_command.rb
View on GitHub
# File tmp/rubies/ruby-3.2.0/lib/rubygems/commands/contents_command.rb, line 8
def initialize
super "contents", "Display the contents of the installed gems",
:specdirs => [], :lib_only => false, :prefix => true,
:show_install_dir => false
add_version_option
add_option("--all",
"Contents for all gems") do |all, options|
options[:all] = all
end
add_option("-s", "--spec-dir a,b,c", Array,
"Search for gems under specific paths") do |spec_dirs, options|
options[:specdirs] = spec_dirs
end
add_option("-l", "--[no-]lib-only",
"Only return files in the Gem's lib_dirs") do |lib_only, options|
options[:lib_only] = lib_only
end
add_option("--[no-]prefix",
"Don't include installed path prefix") do |prefix, options|
options[:prefix] = prefix
end
add_option("--[no-]show-install-dir",
"Show only the gem install dir") do |show, options|
options[:show_install_dir] = show
end
@path_kind = nil
@spec_dirs = nil
@version = nil
end
No documentation available
Instance Methods
#
lib/rubygems/commands/contents_command.rb
View on GitHub
# File tmp/rubies/ruby-3.2.0/lib/rubygems/commands/contents_command.rb, line 65
def execute
@version = options[:version] || Gem::Requirement.default
@spec_dirs = specification_directories
@path_kind = path_description @spec_dirs
names = gem_names
names.each do |name|
found =
if options[:show_install_dir]
gem_install_dir name
else
gem_contents name
end
terminate_interaction 1 unless found || names.length > 1
end
end
No documentation available
lib/rubygems/commands/contents_command.rb
View on GitHub
# File tmp/rubies/ruby-3.2.0/lib/rubygems/commands/contents_command.rb, line 84
def files_in(spec)
if spec.default_gem?
files_in_default_gem spec
else
files_in_gem spec
end
end
No documentation available
lib/rubygems/commands/contents_command.rb
View on GitHub
# File tmp/rubies/ruby-3.2.0/lib/rubygems/commands/contents_command.rb, line 103
def files_in_default_gem(spec)
spec.files.map do |file|
case file
when /\A#{spec.bindir}\//
# $' is POSTMATCH
[RbConfig::CONFIG["bindir"], $']
when /\.so\z/
[RbConfig::CONFIG["archdir"], file]
else
[RbConfig::CONFIG["rubylibdir"], file]
end
end
end
No documentation available
lib/rubygems/commands/contents_command.rb
View on GitHub
# File tmp/rubies/ruby-3.2.0/lib/rubygems/commands/contents_command.rb, line 92
def files_in_gem(spec)
gem_path = spec.full_gem_path
extra = "/{#{spec.require_paths.join ','}}" if options[:lib_only]
glob = "#{gem_path}#{extra}/**/*"
prefix_re = /#{Regexp.escape(gem_path)}\//
Dir[glob].map do |file|
[gem_path, file.sub(prefix_re, "")]
end
end
No documentation available
lib/rubygems/commands/contents_command.rb
View on GitHub
# File tmp/rubies/ruby-3.2.0/lib/rubygems/commands/contents_command.rb, line 117
def gem_contents(name)
spec = spec_for name
return false unless spec
files = files_in spec
show_files files
true
end
No documentation available
lib/rubygems/commands/contents_command.rb
View on GitHub
# File tmp/rubies/ruby-3.2.0/lib/rubygems/commands/contents_command.rb, line 129
def gem_install_dir(name)
spec = spec_for name
return false unless spec
say spec.gem_dir
true
end
No documentation available
lib/rubygems/commands/contents_command.rb
View on GitHub
# File tmp/rubies/ruby-3.2.0/lib/rubygems/commands/contents_command.rb, line 155
def show_files(files)
files.sort.each do |prefix, basename|
absolute_path = File.join(prefix, basename)
next if File.directory? absolute_path
if options[:prefix]
say absolute_path
else
say basename
end
end
end
No documentation available
lib/rubygems/commands/contents_command.rb
View on GitHub
# File tmp/rubies/ruby-3.2.0/lib/rubygems/commands/contents_command.rb, line 168
def spec_for(name)
spec = Gem::Specification.find_all_by_name(name, @version).first
return spec if spec
say "Unable to find gem '#{name}' in #{@path_kind}"
if Gem.configuration.verbose
say "\nDirectories searched:"
@spec_dirs.sort.each {|dir| say dir }
end
return nil
end
No documentation available