aboutsummaryrefslogtreecommitdiffstats
path: root/lib/rubygems/version.rb
diff options
context:
space:
mode:
authorhsbt <hsbt@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2015-02-27 13:00:45 +0000
committerhsbt <hsbt@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2015-02-27 13:00:45 +0000
commitd9c32d62a06edf6bcfaf357e44173cefd92778ee (patch)
treeba0a22afc2b02ca4c6eba226ff27c120595968a7 /lib/rubygems/version.rb
parentb89e894399016def7979168d16eff9026012a710 (diff)
downloadruby-d9c32d62a06edf6bcfaf357e44173cefd92778ee.tar.gz
* lib/rubygems: Update to RubyGems 2.4.6 and HEAD(800f2e6).
Fixed #1159, #1171, #1173 on rubygems/rubygems * test/rubygems: ditto. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@49774 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'lib/rubygems/version.rb')
-rw-r--r--lib/rubygems/version.rb26
1 files changed, 15 insertions, 11 deletions
diff --git a/lib/rubygems/version.rb b/lib/rubygems/version.rb
index 8335ebe182..c581aa367f 100644
--- a/lib/rubygems/version.rb
+++ b/lib/rubygems/version.rb
@@ -217,12 +217,14 @@ class Gem::Version
# Pre-release (alpha) parts, e.g, 5.3.1.b.2 => 5.4, are ignored.
def bump
- segments = self.segments.dup
- segments.pop while segments.any? { |s| String === s }
- segments.pop if segments.size > 1
-
- segments[-1] = segments[-1].succ
- self.class.new segments.join(".")
+ @bump ||= begin
+ segments = self.segments.dup
+ segments.pop while segments.any? { |s| String === s }
+ segments.pop if segments.size > 1
+
+ segments[-1] = segments[-1].succ
+ self.class.new segments.join(".")
+ end
end
##
@@ -291,11 +293,13 @@ class Gem::Version
# Non-prerelease versions return themselves.
def release
- return self unless prerelease?
-
- segments = self.segments.dup
- segments.pop while segments.any? { |s| String === s }
- self.class.new segments.join('.')
+ @release ||= if prerelease?
+ segments = self.segments.dup
+ segments.pop while segments.any? { |s| String === s }
+ self.class.new segments.join('.')
+ else
+ self
+ end
end
def segments # :nodoc: