diff options
| author | Rob <[email protected]> | 2019-04-19 14:27:12 -0400 |
|---|---|---|
| committer | Rob <[email protected]> | 2019-04-19 17:18:30 -0400 |
| commit | 73bb144ef0dcf1f3dc4e721e0fd2d557f18cfe07 (patch) | |
| tree | f4b737b4028149f3f5fa5e1c4a13536e644568a3 /lib | |
| parent | 05f65d2d429fcc5ff6bf5f2f8729fcb5de63b2ca (diff) | |
| download | mruby-73bb144ef0dcf1f3dc4e721e0fd2d557f18cfe07.tar.gz mruby-73bb144ef0dcf1f3dc4e721e0fd2d557f18cfe07.zip | |
Fixes the twiddle wakka comparison algorithm to support passing only a major number
Diffstat (limited to 'lib')
| -rw-r--r-- | lib/mruby/gem.rb | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/lib/mruby/gem.rb b/lib/mruby/gem.rb index ce2e01ab1..95c1d4bc3 100644 --- a/lib/mruby/gem.rb +++ b/lib/mruby/gem.rb @@ -267,16 +267,18 @@ module MRuby # ~> compare algorithm # # Example: + # ~> 2 means >= 2.0.0 and < 3.0.0 # ~> 2.2 means >= 2.2.0 and < 3.0.0 - # ~> 2.2.0 means >= 2.2.0 and < 2.3.0 + # ~> 2.2.2 means >= 2.2.2 and < 2.3.0 def twiddle_wakka_ok?(other) gr_or_eql = (self <=> other) >= 0 - still_minor = (self <=> other.skip_minor) < 0 - gr_or_eql and still_minor + still_major_or_minor = (self <=> other.skip_major_or_minor) < 0 + gr_or_eql and still_major_or_minor end - def skip_minor + def skip_major_or_minor a = @ary.dup + a << 0 if a.size == 1 # ~> 2 can also be represented as ~> 2.0 a.slice!(-1) a[-1] = a[-1].succ a |
