summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorAkira Matsuda <ronnie@dio.jp>2022-01-11 05:30:05 +0900
committergit <svn-admin@ruby-lang.org>2022-01-13 18:15:14 +0900
commit9828502570acce53f4094c23756bc82bd256eab7 (patch)
tree564cba1082afd34a4c35655d7c65ca78a61cca27 /lib
parent9de380860d8dc78963cabb5247c6e4a93a2fc5a9 (diff)
[rubygems/rubygems] Let Version#spaceship accept a String
With this patch, handwriting version comparisons become a little bit easier. before: SomeGem.version <=> Gem::Version.new('1.3') after: SomeGem.version <=> '1.3' https://github.com/rubygems/rubygems/commit/7e0dbb79f2
Diffstat (limited to 'lib')
-rw-r--r--lib/rubygems/version.rb4
1 files changed, 3 insertions, 1 deletions
diff --git a/lib/rubygems/version.rb b/lib/rubygems/version.rb
index 42e0f23505..9a26f721d6 100644
--- a/lib/rubygems/version.rb
+++ b/lib/rubygems/version.rb
@@ -341,9 +341,11 @@ class Gem::Version
# Compares this version with +other+ returning -1, 0, or 1 if the
# other version is larger, the same, or smaller than this
# one. Attempts to compare to something that's not a
- # <tt>Gem::Version</tt> return +nil+.
+ # <tt>Gem::Version</tt> or a valid version String return +nil+.
def <=>(other)
+ return self <=> self.class.new(other) if (String === other) && self.class.correct?(other)
+
return unless Gem::Version === other
return 0 if @version == other._version || canonical_segments == other.canonical_segments