Class | Gem::Commands::InstallCommand |
In: |
lib/rubygems/commands/install_command.rb
|
Parent: | Gem::Command |
# 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: :version => Gem::Requirement.default, 26: }) 27: 28: super 'install', 'Install a gem into the local repository', defaults 29: 30: add_install_update_options 31: add_local_remote_options 32: add_platform_option 33: add_version_option 34: add_prerelease_option "to be installed. (Only for listed gems)" 35: end
# 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: next if options[:conservative] and 119: not Gem::Dependency.new(gem_name, options[:version]).matching_specs.empty? 120: 121: inst = Gem::DependencyInstaller.new options 122: inst.install gem_name, options[:version] 123: 124: inst.installed_gems.each do |spec| 125: say "Successfully installed #{spec.full_name}" 126: end 127: 128: installed_gems.push(*inst.installed_gems) 129: rescue Gem::InstallError => e 130: alert_error "Error installing #{gem_name}:\n\t#{e.message}" 131: exit_code |= 1 132: rescue Gem::GemNotFoundException => e 133: show_lookup_failure e.name, e.version, e.errors, options[:domain] 134: 135: exit_code |= 2 136: end 137: end 138: 139: unless installed_gems.empty? then 140: gems = installed_gems.length == 1 ? 'gem' : 'gems' 141: say "#{installed_gems.length} #{gems} installed" 142: 143: # NOTE: *All* of the RI documents must be generated first. For some 144: # reason, RI docs cannot be generated after any RDoc documents are 145: # generated. 146: 147: if options[:generate_ri] then 148: installed_gems.each do |gem| 149: Gem::DocManager.new(gem, options[:rdoc_args]).generate_ri 150: end 151: 152: Gem::DocManager.update_ri_cache 153: end 154: 155: if options[:generate_rdoc] then 156: installed_gems.each do |gem| 157: Gem::DocManager.new(gem, options[:rdoc_args]).generate_rdoc 158: end 159: end 160: end 161: 162: raise Gem::SystemExitException, exit_code 163: end