Class: Gem::VersionImproved

Inherits:
Version
  • Object
show all
Defined in:
lib/rake/helpers/gemversion.rb

Instance Method Summary collapse

Constructor Details

#initialize(version) ⇒ VersionImproved

Returns a new instance of VersionImproved.



5
6
7
8
9
10
# File 'lib/rake/helpers/gemversion.rb', line 5

def initialize(version)
    super
    @version = '0.0.0.0' if @version.empty?
    # avoid bug when Gem::Version <= 1.3.7

    @segments = nil
end

Instance Method Details

#buildObject

The build for this version (e.g. 1.2.0.a -> 1.2.1). Non-prerelease versions return themselves.



29
30
31
32
33
34
35
36
# File 'lib/rake/helpers/gemversion.rb', line 29

def build
    return self unless prerelease?

    segments = self.segments.dup
    segments.pop while segments.any? { |s| String === s }
    segments[-1] = segments[-1].succ
    self.class.new segments.join('.')
end

#commaObject



49
50
51
# File 'lib/rake/helpers/gemversion.rb', line 49

def comma
    segments.dup.join(',')
end

#prev_releaseObject

Return a new version object where the previous to the last revision number is one lower (e.g., 5.3.1 => 5.2).

Pre-release (alpha) parts, e.g, 5.3.1.b.2 => 5.2, are ignored.



17
18
19
20
21
22
23
24
# File 'lib/rake/helpers/gemversion.rb', line 17

def prev_release
    segments = self.segments.dup
    segments.pop while segments.any? { |s| String === s }
    segments.pop if segments.size > 1

    segments[-1] = segments[-1].to_i.pred.to_s
    self.class.new segments.join(".")
end

#release_numObject

Returns release only part (e.g. 1.2.3.4 -> 3, 1.2.3 -> 2)



41
42
43
44
45
46
47
# File 'lib/rake/helpers/gemversion.rb', line 41

def release_num
    segments = self.segments.dup
    segments.pop while segments.any? { |s| String === s }
    segments.pop if segments.size > 1

    segments[-1]
end