Class: Gem::VersionImproved
- Inherits:
-
Version
- Object
- Version
- Gem::VersionImproved
- Defined in:
- lib/rake/helpers/gemversion.rb
Instance Method Summary collapse
-
#build ⇒ Object
The build for this version (e.g. 1.2.0.a -> 1.2.1).
- #comma ⇒ Object
-
#initialize(version) ⇒ VersionImproved
constructor
A new instance of VersionImproved.
-
#prev_release ⇒ Object
Return a new version object where the previous to the last revision number is one lower (e.g., 5.3.1 => 5.2).
-
#release_num ⇒ Object
Returns release only part (e.g. 1.2.3.4 -> 3, 1.2.3 -> 2).
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
#build ⇒ Object
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 |
#comma ⇒ Object
49 50 51 |
# File 'lib/rake/helpers/gemversion.rb', line 49 def comma segments.dup.join(',') end |
#prev_release ⇒ Object
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_num ⇒ Object
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 |