class Archlinux::Version
Attributes
epoch[R]
pkgrel[R]
version[R]
Public Class Methods
create(v)
click to toggle source
# File lib/aur/versions.rb, line 5 def self.create(v) v.is_a?(self) ? v : self.new(v) end
new(*v)
click to toggle source
# File lib/aur/versions.rb, line 11 def initialize(*v) if v.length==1 @v=v.first parse(@v) elsif v.empty? @epoch=-1 #any version is better than empty version @version=Gem::Version.new(0) @pkgrel=nil else @v=v epoch, version, pkgrel=v @epoch=epoch || 0 @real_epoch= epoch ? true : false @real_version=version @version=set_version(version) @pkgrel=pkgrel end end
strip(v)
click to toggle source
strip version information from a package name
# File lib/aur/versions.rb, line 79 def self.strip(v) v.sub(/[><=]+[\w.\-+:]*$/,'') end
Public Instance Methods
<=>(w)
click to toggle source
# File lib/aur/versions.rb, line 57 def <=>(w) w=self.class.new(w.to_s) r= @epoch <=> w.epoch if r==0 r= @version <=> w.version if r==0 and @pkgrel and w.pkgrel r= @pkgrel <=> w.pkgrel end end r end
set_version(version)
click to toggle source
Gem::Version is super pickly :-(
# File lib/aur/versions.rb, line 31 def set_version(version) version=version.tr('+_','.') @version=Gem::Version.new(version) rescue Gem::Version.new("0.#{version}") end
to_s()
click to toggle source
# File lib/aur/versions.rb, line 69 def to_s # @v.to_s r="" r << "#{@epoch}:" if @real_epoch r << "#{@real_version}" r << "-#{@pkgrel}" if @pkgrel r end
Private Instance Methods
parse(v)
click to toggle source
# File lib/aur/versions.rb, line 36 def parse(v) if v.nil? or v.empty? @epoch=-1 #any version is better than empty version @version=Gem::Version.new(0) @pkgrel=nil return end epoch, rest = v.split(':', 2) if rest.nil? rest=epoch; epoch=0 @real_epoch=false else @real_epoch=true end @epoch=epoch version, pkgrel=Utils.rsplit(rest, '-', 2) set_version(version) @real_version=version @pkgrel=pkgrel.to_i end