class GitCompound::Component::Version::GemVersion

Component Gem-like version

Attributes

requirement[R]

Public Class Methods

new(repository, requirement) click to toggle source
# File lib/git_compound/component/version/gem_version.rb, line 9
def initialize(repository, requirement)
  raise CompoundSyntaxError, 'Malformed version requirement string' unless
    requirement =~ Gem::Requirement::PATTERN

  @repository  = repository
  @requirement = requirement
end

Public Instance Methods

lastest_version() click to toggle source
# File lib/git_compound/component/version/gem_version.rb, line 17
def lastest_version
  matches.first
end
matches() click to toggle source
# File lib/git_compound/component/version/gem_version.rb, line 29
def matches
  versions = @repository.versions
  versions.select! { |version| version.matches?(@requirement) }
  versions.sort.reverse
end
reachable?() click to toggle source
# File lib/git_compound/component/version/gem_version.rb, line 35
def reachable?
  matches.any?
end
ref() click to toggle source
# File lib/git_compound/component/version/gem_version.rb, line 21
def ref
  lastest_version.tag
end
sha() click to toggle source
# File lib/git_compound/component/version/gem_version.rb, line 25
def sha
  lastest_version.sha
end
to_s() click to toggle source
# File lib/git_compound/component/version/gem_version.rb, line 39
def to_s
  "version: #{@requirement}"
end