brew/Library/Homebrew/pkg_version.rb
2014-07-03 16:37:43 -05:00

37 lines
600 B
Ruby

require 'version'
class PkgVersion < Version
attr_reader :version, :revision
RX = /\A(.+?)(?:_(\d+))?\z/
def self.parse(path)
_, version, revision = *path.match(RX)
new(version, revision)
end
def initialize(version, revision)
super(version)
if head?
@revision = 0
else
@revision = revision.to_i
end
end
def to_s
if revision > 0
"#{version}_#{revision}"
else
version
end
end
alias_method :to_str, :to_s
def <=>(other)
return unless Version === other
super.nonzero? || revision <=> other.revision
end
end