class Gem::VersionImproved

Public Class Methods

new(version) click to toggle source
Calls superclass method
# File lib/rake/helpers/gemversion.rb, line 5
def initialize(version)
    # dup version
    # to avoid error on earlier versions of Gem::Version with frozen strings
    super(version.nil? ? version : version.dup)
    @version = '0.0.0.0' if @version.empty?
    # avoid bug when Gem::Version <= 1.3.7
    @segments = nil
end

Public Instance Methods

build() click to toggle source

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

# File lib/rake/helpers/gemversion.rb, line 31
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
build_num() click to toggle source

The build number

# File lib/rake/helpers/gemversion.rb, line 42
def build_num
    segments = self.segments.dup
    segments.pop while segments.any? { |s| String === s }
    segments.pop while segments.size > 4

    segments.size == 4 ? segments[-1] : nil
end
comma() click to toggle source
# File lib/rake/helpers/gemversion.rb, line 77
def comma
    segments.dup.join(',')
end
major() click to toggle source
# File lib/rake/helpers/gemversion.rb, line 61
def major
    segments = self.segments.dup
    segments.pop while segments.any? { |s| String === s }
    segments.pop while segments.size > 1

    segments[-1]
end
minor() click to toggle source
# File lib/rake/helpers/gemversion.rb, line 69
def minor
    segments = self.segments.dup
    segments.pop while segments.any? { |s| String === s }
    segments.pop while segments.size > 2

    segments.size == 2 ? segments[-1] : nil
end
prev_release() click to toggle source

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.

# File lib/rake/helpers/gemversion.rb, line 19
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_num() click to toggle source

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

# File lib/rake/helpers/gemversion.rb, line 53
def release_num
    segments = self.segments.dup
    segments.pop while segments.any? { |s| String === s }
    segments.pop if segments.size > 1

    segments[-1]
end