diff options
Diffstat (limited to 'Library/Homebrew/pkg_version.rb')
| -rw-r--r-- | Library/Homebrew/pkg_version.rb | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/Library/Homebrew/pkg_version.rb b/Library/Homebrew/pkg_version.rb new file mode 100644 index 000000000..3d81df261 --- /dev/null +++ b/Library/Homebrew/pkg_version.rb @@ -0,0 +1,35 @@ +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) + super.nonzero? || revision <=> other.revision + end +end |
