class SemanticPuppet::Dependency::ModuleRelease

Attributes

name[R]
version[R]

Public Class Methods

new(source, name, version, dependencies = {}) click to toggle source

Create a new instance of a module release.

@param source [SemanticPuppet::Dependency::Source] @param name [String] @param version [SemanticPuppet::Version] @param dependencies [{String => SemanticPuppet::VersionRange}]

# File lib/semantic_puppet/dependency/module_release.rb, line 16
def initialize(source, name, version, dependencies = {})
  @source      = source
  @name        = name.freeze
  @version     = version.freeze

  dependencies.each do |name, range|
    add_constraint('initialize', name, range.to_s) do |node|
      range === node.version
    end

    add_dependency(name)
  end
end

Public Instance Methods

<=>(oth) click to toggle source
# File lib/semantic_puppet/dependency/module_release.rb, line 34
def <=>(oth)
  our_key   = [ priority, name, version ]
  their_key = [ oth.priority, oth.name, oth.version ]

  return our_key <=> their_key
end
==(other)
Alias for: eql?
eql?(other) click to toggle source
# File lib/semantic_puppet/dependency/module_release.rb, line 41
def eql?(other)
  other.is_a?(ModuleRelease) &&
    @name.eql?(other.name) &&
    @version.eql?(other.version) &&
    dependencies.eql?(other.dependencies)
end
Also aliased as: ==
hash() click to toggle source
# File lib/semantic_puppet/dependency/module_release.rb, line 49
def hash
  @name.hash ^ @version.hash
end
priority() click to toggle source
# File lib/semantic_puppet/dependency/module_release.rb, line 30
def priority
  @source.priority
end
to_s() click to toggle source
# File lib/semantic_puppet/dependency/module_release.rb, line 53
def to_s
  "#<#{self.class} #{name}@#{version}>"
end