# class Gem::Resolver::Specification

A Resolver::Specification contains a subset of the information contained in a Gem::Specification. Only the information necessary for dependency resolution in the resolver is included.

### Attributes

dependencies[R]

The dependencies of the gem for this specification

name[R]

The name of the gem for this specification

platform[R]

The platform this gem works on.

set[R]

The set this specification came from.

source[R]

The source for this specification

spec[R]

The Gem::Specification for this Resolver::Specification.

Implementers, note that install updates @spec, so be sure to cache the Gem::Specification in @spec when overriding.

version[R]

The version of the gem for this specification.

### Public Class Methods

new() click to toggle source

Sets default instance variables for the specification.

    # File lib/rubygems/resolver/specification.rb, line 49
    def initialize
      @dependencies = nil
      @name         = nil
      @platform     = nil
      @set          = nil
      @source       = nil
      @version      = nil
    end

### Public Instance Methods

full_name() click to toggle source

The name and version of the specification.

Unlike Gem::Specification#full_name, the platform is not included.

    # File lib/rubygems/resolver/specification.rb, line 70
    def full_name
      "#{@name}-#{@version}"
    end

install(options = {}) { |installer| ... } click to toggle source

Installs this specification using the Gem::Installer `options`. The install method yields a Gem::Installer instance, which indicates the gem will be installed, or `nil`, which indicates the gem is already installed.

After installation spec is updated to point to the just-installed specification.

    # File lib/rubygems/resolver/specification.rb, line 83
    def install options = {}
      require 'rubygems/installer'

      destination = options[:install_dir] || Gem.dir

      Gem.ensure_gem_subdirectories destination

      gem = source.download spec, destination

      installer = Gem::Installer.at gem, options

      yield installer if block_given?

      @spec = installer.install
    end

installable_platform?() click to toggle source

Returns true if this specification is installable on this platform.

    # File lib/rubygems/resolver/specification.rb, line 102
    def installable_platform?
      Gem::Platform.match spec.platform
    end