# class Bundler::ParallelInstaller::SpecInstallation

### Attributes

error[RW]
name[RW]
post_install_message[RW]
spec[RW]
state[RW]

### Public Class Methods

new(spec) click to toggle source

    # File lib/bundler/installer/parallel_installer.rb, line 10
    def initialize(spec)
      @spec = spec
      @name = spec.name
      @state = :none
      @post_install_message = ""
      @error = nil
    end

### Public Instance Methods

all_dependencies() click to toggle source

Represents all dependencies

    # File lib/bundler/installer/parallel_installer.rb, line 68
    def all_dependencies
      @spec.dependencies
    end

dependencies() click to toggle source

Represents only the non-development dependencies, the ones that are itself and are in the total list.

    # File lib/bundler/installer/parallel_installer.rb, line 56
    def dependencies
      @dependencies ||= begin
        all_dependencies.reject {|dep| ignorable_dependency? dep }
      end
    end

dependencies_installed?(all_specs) click to toggle source

Checks installed dependencies against spec's dependencies to make sure needed dependencies have been installed.

    # File lib/bundler/installer/parallel_installer.rb, line 49
    def dependencies_installed?(all_specs)
      installed_specs = all_specs.select(&:installed?).map(&:name)
      dependencies.all? {|d| installed_specs.include? d.name }
    end

enqueued?() click to toggle source

    # File lib/bundler/installer/parallel_installer.rb, line 22
    def enqueued?
      state == :enqueued
    end

failed?() click to toggle source

    # File lib/bundler/installer/parallel_installer.rb, line 26
    def failed?
      state == :failed
    end

has_post_install_message?() click to toggle source

    # File lib/bundler/installer/parallel_installer.rb, line 39
    def has_post_install_message?
      !post_install_message.empty?
    end

ignorable_dependency?(dep) click to toggle source

    # File lib/bundler/installer/parallel_installer.rb, line 43
    def ignorable_dependency?(dep)
      dep.type == :development || dep.name == @name
    end

installation_attempted?() click to toggle source

    # File lib/bundler/installer/parallel_installer.rb, line 30
    def installation_attempted?
      installed? || failed?
    end

installed?() click to toggle source

    # File lib/bundler/installer/parallel_installer.rb, line 18
    def installed?
      state == :installed
    end

missing_lockfile_dependencies(all_spec_names) click to toggle source

    # File lib/bundler/installer/parallel_installer.rb, line 62
    def missing_lockfile_dependencies(all_spec_names)
      deps = all_dependencies.reject {|dep| ignorable_dependency? dep }
      deps.reject {|dep| all_spec_names.include? dep.name }
    end

ready_to_enqueue?() click to toggle source

Only true when spec in neither installed nor already enqueued

    # File lib/bundler/installer/parallel_installer.rb, line 35
    def ready_to_enqueue?
      !enqueued? && !installation_attempted?
    end

to_s() click to toggle source

    # File lib/bundler/installer/parallel_installer.rb, line 72
    def to_s
      "#<#{self.class} #{@spec.full_name} (#{state})>"
    end