Sha256: 30a2ef75f6e4dc2d400ca25d6f59e55b9f35036ac28747bdf3204946724ab388
Contents?: true
Size: 1.16 KB
Versions: 11
Compression:
Stored size: 1.16 KB
Contents
module Comparable def self.normalize(what) return what if Integer === what return 1 if what > 0 return -1 if what < 0 return 0 end def ==(other) return true if equal?(other) return false unless cmp = (self <=> other) return Comparable.normalize(cmp) == 0 rescue StandardError false end def >(other) unless cmp = (self <=> other) raise ArgumentError, "comparison of #{self.class} with #{other.class} failed" end Comparable.normalize(cmp) > 0 end def >=(other) unless cmp = (self <=> other) raise ArgumentError, "comparison of #{self.class} with #{other.class} failed" end Comparable.normalize(cmp) >= 0 end def <(other) unless cmp = (self <=> other) raise ArgumentError, "comparison of #{self.class} with #{other.class} failed" end Comparable.normalize(cmp) < 0 end def <=(other) unless cmp = (self <=> other) raise ArgumentError, "comparison of #{self.class} with #{other.class} failed" end Comparable.normalize(cmp) <= 0 end def between?(min, max) return false if self < min return false if self > max return true end end
Version data entries
11 entries across 11 versions & 2 rubygems