Class: Gem::Commands::EnvironmentCommand

Inherits:
Gem::Command show all
Defined in:
lib/rubygems/commands/environment_command.rb

Instance Attribute Summary

Attributes inherited from Gem::Command

#command, #defaults, #options, #program_name, #summary

Instance Method Summary collapse

Methods inherited from Gem::Command

add_common_option, #add_extra_args, #add_option, add_specific_extra_args, #begins?, build_args, build_args=, #check_deprecated_options, common_options, #defaults_str, #deprecate_option, #deprecated?, extra_args, extra_args=, #extract_gem_name_and_version, #get_all_gem_names, #get_all_gem_names_and_versions, #get_one_gem_name, #get_one_optional_argument, #handle_options, #handles?, #invoke, #invoke_with_build_args, #merge_options, #remove_option, #show_help, #show_lookup_failure, specific_extra_args, specific_extra_args_hash, #when_invoked

Methods included from UserInteraction

#alert, #alert_error, #alert_warning, #ask, #ask_for_password, #ask_yes_no, #choose_from_list, #say, #terminate_interaction, #verbose

Methods included from DefaultUserInteraction

ui, #ui, ui=, #ui=, use_ui, #use_ui

Methods included from Text

#clean_text, #format_text, #levenshtein_distance, #min3, #truncate_text

Constructor Details

#initializeEnvironmentCommand

Returns a new instance of EnvironmentCommand.



6
7
8
# File 'lib/rubygems/commands/environment_command.rb', line 6

def initialize
  super "environment", "Display information about the RubyGems environment"
end

Instance Method Details

#add_path(out, path) ⇒ Object



103
104
105
106
107
# File 'lib/rubygems/commands/environment_command.rb', line 103

def add_path(out, path)
  path.each do |component|
    out << "     - #{component}\n"
  end
end

#argumentsObject

:nodoc:



10
11
12
13
14
15
16
17
18
19
20
21
22
# File 'lib/rubygems/commands/environment_command.rb', line 10

def arguments # :nodoc:
  args = "        home            display the path where gems are installed. Aliases: gemhome, gemdir, GEM_HOME\n        path            display path used to search for gems. Aliases: gempath, GEM_PATH\n        user_gemhome    display the path where gems are installed when `--user-install` is given. Aliases: user_gemdir\n        version         display the gem format version\n        remotesources   display the remote gem servers\n        platform        display the supported gem platforms\n        credentials     display the path where credentials are stored\n        <omitted>       display everything\n  EOF\n  args.gsub(/^\\s+/, \"\")\nend\n"

#descriptionObject

:nodoc:



24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
# File 'lib/rubygems/commands/environment_command.rb', line 24

def description # :nodoc:
  "The environment command lets you query rubygems for its configuration for\nuse in shell scripts or as a debugging aid.\n\nThe RubyGems environment can be controlled through command line arguments,\ngemrc files, environment variables and built-in defaults.\n\nCommand line argument defaults and some RubyGems defaults can be set in a\n~/.gemrc file for individual users and a gemrc in the SYSTEM CONFIGURATION\nDIRECTORY for all users. These files are YAML files with the following YAML\nkeys:\n\n:sources: A YAML array of remote gem repositories to install gems from\n:verbose: Verbosity of the gem command. false, true, and :really are the\n          levels\n:update_sources: Enable/disable automatic updating of repository metadata\n:backtrace: Print backtrace when RubyGems encounters an error\n:gempath: The paths in which to look for gems\n:disable_default_gem_server: Force specification of gem server host on push\n<gem_command>: A string containing arguments for the specified gem command\n\nExample:\n\n:verbose: false\ninstall: --no-wrappers\nupdate: --no-wrappers\n:disable_default_gem_server: true\n\nRubyGems' default local repository can be overridden with the GEM_PATH and\nGEM_HOME environment variables. GEM_HOME sets the default repository to\ninstall into. GEM_PATH allows multiple local repositories to be searched for\ngems.\n\nIf you are behind a proxy server, RubyGems uses the HTTP_PROXY,\nHTTP_PROXY_USER and HTTP_PROXY_PASS environment variables to discover the\nproxy server.\n\nIf you would like to push gems to a private gem server the RUBYGEMS_HOST\nenvironment variable can be set to the URI for that server.\n\nIf you are packaging RubyGems all of RubyGems' defaults are in\nlib/rubygems/defaults.rb.  You may override these in\nlib/rubygems/defaults/operating_system.rb\n  EOF\nend\n"

#executeObject



75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
# File 'lib/rubygems/commands/environment_command.rb', line 75

def execute
  out = String.new
  arg = options[:args][0]
  out <<
    case arg
    when /^version/ then
      Gem::VERSION
    when /^gemdir/, /^gemhome/, /^home/, /^GEM_HOME/ then
      Gem.dir
    when /^gempath/, /^path/, /^GEM_PATH/ then
      Gem.path.join(File::PATH_SEPARATOR)
    when /^user_gemdir/, /^user_gemhome/ then
      Gem.user_dir
    when /^remotesources/ then
      Gem.sources.to_a.join("\n")
    when /^platform/ then
      Gem.platforms.join(File::PATH_SEPARATOR)
    when /^credentials/, /^creds/ then
      Gem.configuration.credentials_path
    when nil then
      show_environment
    else
      raise Gem::CommandLineError, "Unknown environment option [#{arg}]"
    end
  say out
  true
end

#show_environmentObject

:nodoc:



109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
# File 'lib/rubygems/commands/environment_command.rb', line 109

def show_environment # :nodoc:
  out = "RubyGems Environment:\n".dup

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

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

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

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

  out << "  - CREDENTIALS FILE: #{Gem.configuration.credentials_path}\n"

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

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

  out << "  - GIT EXECUTABLE: #{git_path}\n"

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

  out << "  - SPEC CACHE DIRECTORY: #{Gem.spec_cache_dir}\n"

  out << "  - SYSTEM CONFIGURATION DIRECTORY: #{Gem::ConfigFile::SYSTEM_CONFIG_PATH}\n"

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

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

  gem_path = Gem.path.dup
  gem_path.delete Gem.dir
  add_path out, gem_path

  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

  out << "  - SHELL PATH:\n"

  shell_path = ENV["PATH"].split(File::PATH_SEPARATOR)
  add_path out, shell_path

  out
end

#usageObject

:nodoc:



71
72
73
# File 'lib/rubygems/commands/environment_command.rb', line 71

def usage # :nodoc:
  "#{program_name} [arg]"
end