method

execute

Importance_0
v1_9_3_392 - Show latest stable - 0 notes - Class: InstallCommand
execute() public

No documentation

This method has no description. You can help the Ruby community by adding new notes.

Hide source
# File lib/rubygems/commands/install_command.rb, line 103
  def execute
    if options[:include_dependencies] then
      alert "`gem install -y` is now default and will be removed"
      alert "use --ignore-dependencies to install only the gems you list"
    end

    installed_gems = []

    ENV.delete 'GEM_PATH' if options[:install_dir].nil? and RUBY_VERSION > '1.9'

    exit_code = 0

    get_all_gem_names.each do |gem_name|
      begin
        next if options[:conservative] and
          not Gem::Dependency.new(gem_name, options[:version]).matching_specs.empty?

        inst = Gem::DependencyInstaller.new options
        inst.install gem_name, options[:version]

        inst.installed_gems.each do |spec|
          say "Successfully installed #{spec.full_name}"
        end

        installed_gems.push(*inst.installed_gems)
      rescue Gem::InstallError => e
        alert_error "Error installing #{gem_name}:\n\t#{e.message}"
        exit_code |= 1
      rescue Gem::GemNotFoundException => e
        show_lookup_failure e.name, e.version, e.errors, options[:domain]

        exit_code |= 2
      end
    end

    unless installed_gems.empty? then
      gems = installed_gems.length == 1 ? 'gem' : 'gems'
      say "#{installed_gems.length} #{gems} installed"

      # NOTE: *All* of the RI documents must be generated first.  For some
      # reason, RI docs cannot be generated after any RDoc documents are
      # generated.

      if options[:generate_ri] then
        installed_gems.each do |gem|
          Gem::DocManager.new(gem, options[:rdoc_args]).generate_ri
        end

        Gem::DocManager.update_ri_cache
      end

      if options[:generate_rdoc] then
        installed_gems.each do |gem|
          Gem::DocManager.new(gem, options[:rdoc_args]).generate_rdoc
        end
      end
    end

    raise Gem::SystemExitException, exit_code
  end
Register or log in to add new notes.