Parent

Methods

Class Index [+]

Quicksearch

Gem::Commands::InstallCommand

Gem installer command line tool

See `gem help install`

Public Class Methods

new() click to toggle source
    # File lib/rubygems/commands/install_command.rb, line 20
20:   def initialize
21:     defaults = Gem::DependencyInstaller::DEFAULT_OPTIONS.merge({
22:       :generate_rdoc     => true,
23:       :generate_ri       => true,
24:       :format_executable => false,
25:       :test              => false,
26:       :version           => Gem::Requirement.default,
27:     })
28: 
29:     super 'install', 'Install a gem into the local repository', defaults
30: 
31:     add_install_update_options
32:     add_local_remote_options
33:     add_platform_option
34:     add_version_option
35:     add_prerelease_option "to be installed. (Only for listed gems)"
36:   end

Public Instance Methods

execute() click to toggle source
     # File lib/rubygems/commands/install_command.rb, line 104
104:   def execute
105:     if options[:include_dependencies] then
106:       alert "`gem install -y` is now default and will be removed"
107:       alert "use --ignore-dependencies to install only the gems you list"
108:     end
109: 
110:     installed_gems = []
111: 
112:     ENV.delete 'GEM_PATH' if options[:install_dir].nil? and RUBY_VERSION > '1.9'
113: 
114:     exit_code = 0
115: 
116:     get_all_gem_names.each do |gem_name|
117:       begin
118:         inst = Gem::DependencyInstaller.new options
119:         inst.install gem_name, options[:version]
120: 
121:         inst.installed_gems.each do |spec|
122:           say "Successfully installed #{spec.full_name}"
123:         end
124: 
125:         installed_gems.push(*inst.installed_gems)
126:       rescue Gem::InstallError => e
127:         alert_error "Error installing #{gem_name}:\n\t#{e.message}"
128:         exit_code |= 1
129:       rescue Gem::GemNotFoundException => e
130:         show_lookup_failure e.name, e.version, e.errors
131: 
132:         exit_code |= 2
133:       end
134:     end
135: 
136:     unless installed_gems.empty? then
137:       gems = installed_gems.length == 1 ? 'gem' : 'gems'
138:       say "#{installed_gems.length} #{gems} installed"
139: 
140:       # NOTE: *All* of the RI documents must be generated first.  For some
141:       # reason, RI docs cannot be generated after any RDoc documents are
142:       # generated.
143: 
144:       if options[:generate_ri] then
145:         installed_gems.each do |gem|
146:           Gem::DocManager.new(gem, options[:rdoc_args]).generate_ri
147:         end
148: 
149:         Gem::DocManager.update_ri_cache
150:       end
151: 
152:       if options[:generate_rdoc] then
153:         installed_gems.each do |gem|
154:           Gem::DocManager.new(gem, options[:rdoc_args]).generate_rdoc
155:         end
156:       end
157: 
158:       if options[:test] then
159:         installed_gems.each do |spec|
160:           gem_spec = Gem::SourceIndex.from_installed_gems.find_name(spec.name, spec.version.version).first
161:           result = Gem::Validator.new.unit_test(gem_spec)
162:           if result and not result.passed?
163:             unless ask_yes_no("...keep Gem?", true)
164:               require 'rubygems/uninstaller'
165:               Gem::Uninstaller.new(spec.name, :version => spec.version.version).uninstall
166:             end
167:           end
168:         end
169:       end
170:     end
171: 
172:     raise Gem::SystemExitException, exit_code
173:   end

Disabled; run with --debug to generate this.

[Validate]

Generated with the Darkfish Rdoc Generator 1.1.6.