1
0
Fork 0
arangodb/3rdParty/mruby/mrblib/compar.rb

105 lines
1.5 KiB
Ruby

##
# Comparable
#
# ISO 15.3.3
module Comparable
##
# Return true if +self+ is less
# than +other+. Otherwise return
# false.
#
# ISO 15.3.3.2.1
def < other
cmp = self <=> other
if cmp.nil?
false
elsif cmp < 0
true
else
false
end
end
##
# Return true if +self+ is less
# than or equal to +other+.
# Otherwise return false.
#
# ISO 15.3.3.2.2
def <= other
cmp = self <=> other
if cmp.nil?
false
elsif cmp <= 0
true
else
false
end
end
##
# Return true if +self+ is equal
# to +other+. Otherwise return
# false.
#
# ISO 15.3.3.2.3
def == other
cmp = self <=> other
if cmp == 0
true
else
false
end
end
##
# Return true if +self+ is greater
# than +other+. Otherwise return
# false.
#
# ISO 15.3.3.2.4
def > other
cmp = self <=> other
if cmp.nil?
false
elsif cmp > 0
true
else
false
end
end
##
# Return true if +self+ is greater
# than or equal to +other+.
# Otherwise return false.
#
# ISO 15.3.3.2.5
def >= other
cmp = self <=> other
if cmp.nil?
false
elsif cmp >= 0
true
else
false
end
end
##
# Return true if +self+ is greater
# than or equal to +min+ and
# less than or equal to +max+.
# Otherwise return false.
#
# ISO 15.3.3.2.6
def between?(min, max)
if self < min or self > max
false
else
true
end
end
end