Class: Dr::PkgVersion
- Inherits:
-
Object
- Object
- Dr::PkgVersion
- Defined in:
- lib/dr/pkgversion.rb
Instance Attribute Summary collapse
-
#build ⇒ Object
Returns the value of attribute build.
-
#date ⇒ Object
Returns the value of attribute date.
-
#debian ⇒ Object
Returns the value of attribute debian.
-
#epoch ⇒ Object
Returns the value of attribute epoch.
-
#upstream ⇒ Object
Returns the value of attribute upstream.
Instance Method Summary collapse
- #<(o) ⇒ Object
- #<=(o) ⇒ Object
- #==(o) ⇒ Object
- #>(o) ⇒ Object
- #>=(o) ⇒ Object
- #add_build_tag ⇒ Object
- #increment! ⇒ Object
-
#initialize(version_string) ⇒ PkgVersion
constructor
A new instance of PkgVersion.
- #source ⇒ Object
- #to_s(omit_epoch = false) ⇒ Object
Constructor Details
#initialize(version_string) ⇒ PkgVersion
Returns a new instance of PkgVersion.
8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 |
# File 'lib/dr/pkgversion.rb', line 8 def initialize(version_string) @epoch = 0 # integer @upstream = "" # string @debian = "" # string @date = 0 # integer @build = 0 # integer # Make sure the version is string version_string = version_string.to_s v = version_string.split ":" if v.length > 1 @epoch = v[0].to_i version_string = v[1..-1].join ":" end v = version_string.split "-" if v.length == 1 @upstream = version_string else @upstream = v[0...-1].join "-" # Check whether the is a build tag in the debian version dv = v[-1].split "." if dv.length == 1 @debian = v[-1] else @debian = dv[0] build_tag = dv[1..-1].join "." if build_tag =~ /^[0-9]{8}/ @date = dv[1][0..7].to_i match = dv[1].match(/build([0-9]+)$/) if match @build = match.captures[0].to_i end else # The part behind the '.' isn't a valid build tag, # append the string back to debian version. @debian << '.' << build_tag end end end end |
Instance Attribute Details
#build ⇒ Object
Returns the value of attribute build.
6 7 8 |
# File 'lib/dr/pkgversion.rb', line 6 def build @build end |
#date ⇒ Object
Returns the value of attribute date.
6 7 8 |
# File 'lib/dr/pkgversion.rb', line 6 def date @date end |
#debian ⇒ Object
Returns the value of attribute debian.
6 7 8 |
# File 'lib/dr/pkgversion.rb', line 6 def debian @debian end |
#epoch ⇒ Object
Returns the value of attribute epoch.
6 7 8 |
# File 'lib/dr/pkgversion.rb', line 6 def epoch @epoch end |
#upstream ⇒ Object
Returns the value of attribute upstream.
6 7 8 |
# File 'lib/dr/pkgversion.rb', line 6 def upstream @upstream end |
Instance Method Details
#<(o) ⇒ Object
65 66 67 |
# File 'lib/dr/pkgversion.rb', line 65 def <(o) compare(o) < 0 end |
#<=(o) ⇒ Object
73 74 75 |
# File 'lib/dr/pkgversion.rb', line 73 def <=(o) compare(o) <= 0 end |
#==(o) ⇒ Object
81 82 83 |
# File 'lib/dr/pkgversion.rb', line 81 def ==(o) compare(o) == 0 end |
#>(o) ⇒ Object
69 70 71 |
# File 'lib/dr/pkgversion.rb', line 69 def >(o) compare(o) > 0 end |
#>=(o) ⇒ Object
77 78 79 |
# File 'lib/dr/pkgversion.rb', line 77 def >=(o) compare(o) >= 0 end |
#add_build_tag ⇒ Object
114 115 116 |
# File 'lib/dr/pkgversion.rb', line 114 def add_build_tag @date = today end |
#increment! ⇒ Object
55 56 57 58 59 60 61 62 63 |
# File 'lib/dr/pkgversion.rb', line 55 def increment! if @date == today @build += 1 else @date = today end self end |
#source ⇒ Object
107 108 109 110 111 112 |
# File 'lib/dr/pkgversion.rb', line 107 def source v = "#{upstream}" v = "#{epoch}:#{v}" if @epoch > 0 v << "-#{debian}" if @debian.length > 0 v end |
#to_s(omit_epoch = false) ⇒ Object
85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 |
# File 'lib/dr/pkgversion.rb', line 85 def to_s(omit_epoch=false) v = @upstream.clone if @epoch > 0 and not omit_epoch v = "#{@epoch}:#{v}" end if @debian.length > 0 v << "-#{@debian}" end if @date > 0 v << ".#{@date}" if @build > 0 v << "build#{@build}" end end v end |