Sha256: 4e033ff0b3431fbb11463eace6281617c9a466a15af421396c892823ad2c54e1

Contents?: true

Size: 1.18 KB

Versions: 7

Compression:

Stored size: 1.18 KB

Contents

##
# The LockSpecification comes from a lockfile (Gem::RequestSet::Lockfile).
#
# A LockSpecification's dependency information is pre-filled from the
# lockfile.

class Gem::Resolver::LockSpecification < Gem::Resolver::Specification

  def initialize set, name, version, source, platform
    super()

    @name     = name
    @platform = platform
    @set      = set
    @source   = source
    @version  = version

    @dependencies = []
    @spec         = nil
  end

  ##
  # This is a null install as a locked specification is considered installed.
  # +options+ are ignored.

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

    if File.exist? File.join(destination, 'specifications', spec.spec_name) then
      yield nil
      return
    end

    super
  end

  ##
  # Adds +dependency+ from the lockfile to this specification

  def add_dependency dependency # :nodoc:
    @dependencies << dependency
  end

  ##
  # A specification constructed from the lockfile is returned

  def spec
    @spec ||= Gem::Specification.new do |s|
      s.name     = @name
      s.version  = @version
      s.platform = @platform

      s.dependencies.concat @dependencies
    end
  end

end

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
rubygems-update-2.2.5 lib/rubygems/resolver/lock_specification.rb
rubygems-update-2.2.4 lib/rubygems/resolver/lock_specification.rb
rubygems-update-2.2.3 lib/rubygems/resolver/lock_specification.rb
rubygems-update-2.2.2 lib/rubygems/resolver/lock_specification.rb
rubygems-update-2.2.1 lib/rubygems/resolver/lock_specification.rb
rubygems-update-2.2.0 lib/rubygems/resolver/lock_specification.rb
rubygems-update-2.2.0.rc.1 lib/rubygems/resolver/lock_specification.rb