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=, #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, 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.



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

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

Instance Method Details

#add_path(out, path) ⇒ Object



96
97
98
99
100
# File 'lib/rubygems/commands/environment_command.rb', line 96

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

#argumentsObject

:nodoc:



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

def arguments # :nodoc:
  args = "        gemdir          display the path where gems are installed\n        gempath         display path used to search for gems\n        version         display the gem format version\n        remotesources   display the remote gem servers\n        platform        display the supported gem platforms\n        <omitted>       display everything\n  EOF\n  return args.gsub(/^\\s+/, '')\nend\n"

#descriptionObject

:nodoc:



21
22
23
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
# File 'lib/rubygems/commands/environment_command.rb', line 21

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



72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
# File 'lib/rubygems/commands/environment_command.rb', line 72

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 /^remotesources/ then
      Gem.sources.to_a.join("\n")
    when /^platform/ then
      Gem.platforms.join(File::PATH_SEPARATOR)
    when nil then
      show_environment
    else
      raise Gem::CommandLineError, "Unknown environment option [#{arg}]"
    end
  say out
  true
end

#show_environmentObject

:nodoc:



102
103
104
105
106
107
108
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
# File 'lib/rubygems/commands/environment_command.rb', line 102

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

  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 << "  - USER INSTALLATION DIRECTORY: #{Gem.user_dir}\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:



68
69
70
# File 'lib/rubygems/commands/environment_command.rb', line 68

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