class Gem::Commands::EnvironmentCommand

Public Class Methods

new() click to toggle source
Calls superclass method Gem::Command.new
# File lib/rubygems/commands/environment_command.rb, line 5
def initialize
  super 'environment', 'Display information about the RubyGems environment'
end

Public Instance Methods

execute() click to toggle source
# File lib/rubygems/commands/environment_command.rb, line 69
def execute
  out = ''
  arg = options[:args][0]
  case arg
  when /^packageversion/ then
    out << Gem::RubyGemsPackageVersion
  when /^version/ then
    out << Gem::VERSION
  when /^gemdir/, /^gemhome/, /^home/, /^GEM_HOME/ then
    out << Gem.dir
  when /^gempath/, /^path/, /^GEM_PATH/ then
    out << Gem.path.join(File::PATH_SEPARATOR)
  when /^remotesources/ then
    out << Gem.sources.to_a.join("\n")
  when /^platform/ then
    out << Gem.platforms.join(File::PATH_SEPARATOR)
  when nil then
    out = "RubyGems Environment:\n"

    out << "  - RUBYGEMS VERSION: #{Gem::VERSION}\n"

    out << "  - RUBY VERSION: #{RUBY_VERSION} (#{RUBY_RELEASE_DATE}"
    out << " patchlevel #{RUBY_PATCHLEVEL}" if defined? RUBY_PATCHLEVEL
    out << ") [#{RUBY_PLATFORM}]\n"

    out << "  - INSTALLATION DIRECTORY: #{Gem.dir}\n"

    out << "  - RUBYGEMS PREFIX: #{Gem.prefix}\n" unless Gem.prefix.nil?

    out << "  - RUBY EXECUTABLE: #{Gem.ruby}\n"

    out << "  - EXECUTABLE DIRECTORY: #{Gem.bindir}\n"

    out << "  - RUBYGEMS PLATFORMS:\n"
    Gem.platforms.each do |platform|
      out << "    - #{platform}\n"
    end

    out << "  - GEM PATHS:\n"
    out << "     - #{Gem.dir}\n"

    path = Gem.path.dup
    path.delete Gem.dir
    path.each do |p|
      out << "     - #{p}\n"
    end

    out << "  - GEM CONFIGURATION:\n"
    Gem.configuration.each do |name, value|
      value = value.gsub(/./, '*') if name == 'gemcutter_key'
      out << "     - #{name.inspect} => #{value.inspect}\n"
    end

    out << "  - REMOTE SOURCES:\n"
    Gem.sources.each do |s|
      out << "     - #{s}\n"
    end

  else
    raise Gem::CommandLineError, "Unknown environment option [#{arg}]"
  end
  say out
  true
end