class Richcss::VersionKit::RequirementList

Attributes

requirements[R]

@return [Array<Requirement>]

Public Class Methods

new(requirements = []) click to toggle source

@param [Array<Requirement>] @see requirements.

# File lib/richcss/vendor/version_kit/lib/version_kit/requirement_list.rb, line 13
def initialize(requirements = [])
  @requirements = Array(requirements).map do |requirement|
    normalize_requirement(requirement)
  end
end

Public Instance Methods

==(other) click to toggle source
# File lib/richcss/vendor/version_kit/lib/version_kit/requirement_list.rb, line 54
def ==(other)
  requirements == other.requirements
end
add_requirement(requirement) click to toggle source

@return [void]

# File lib/richcss/vendor/version_kit/lib/version_kit/requirement_list.rb, line 21
def add_requirement(requirement)
  requirement = normalize_requirement(requirement)
  requirements << requirement
  requirements.uniq!
end
hash() click to toggle source

@return [Fixnum] The hash of the instance.

# File lib/richcss/vendor/version_kit/lib/version_kit/requirement_list.rb, line 50
def hash
  to_s.hash
end
satisfied_by?(candidate_version) click to toggle source

@return [Bool]

# File lib/richcss/vendor/version_kit/lib/version_kit/requirement_list.rb, line 29
def satisfied_by?(candidate_version)
  requirements.all? do |requirement|
    requirement.satisfied_by?(candidate_version)
  end
end
to_s() click to toggle source

@return [String] the string representation of this class. The string is

equivalent, but not strictly equal, to the one used on
initialization.
# File lib/richcss/vendor/version_kit/lib/version_kit/requirement_list.rb, line 44
def to_s
  requirements.map(&:to_s).join(', ')
end

Private Instance Methods

normalize_requirement(requirement) click to toggle source

@!group Private Helpers

# File lib/richcss/vendor/version_kit/lib/version_kit/requirement_list.rb, line 63
def normalize_requirement(requirement)
  case requirement
  when Requirement
    requirement
  when String, Version
    Requirement.new(requirement)
  else
    raise ArgumentError, 'Unable to normalize requirement ' \
      "`#{requirement.inspect}`"
  end
end