ISO 15.3.3
Return true if self is less than other. Otherwise
return false.
ISO 15.3.3.2.1
# File mrblib/compar.rb, line 13
def < other
cmp = self <=> other
if cmp.nil?
raise ArgumentError, "comparison of #{self.class} with #{other.class} failed"
end
cmp < 0
end
Return true if self is less than or equal to
other. Otherwise return false.
ISO 15.3.3.2.2
# File mrblib/compar.rb, line 27
def <= other
cmp = self <=> other
if cmp.nil?
raise ArgumentError, "comparison of #{self.class} with #{other.class} failed"
end
cmp <= 0
end
Return true if self is equal to other. Otherwise
return false.
ISO 15.3.3.2.3
# File mrblib/compar.rb, line 41
def == other
cmp = self <=> other
cmp == 0
end
Return true if self is greater than other.
Otherwise return false.
ISO 15.3.3.2.4
# File mrblib/compar.rb, line 52
def > other
cmp = self <=> other
if cmp.nil?
raise ArgumentError, "comparison of #{self.class} with #{other.class} failed"
end
cmp > 0
end
Return true if self is greater than or equal to
other. Otherwise return false.
ISO 15.3.3.2.5
# File mrblib/compar.rb, line 66
def >= other
cmp = self <=> other
if cmp.nil?
raise ArgumentError, "comparison of #{self.class} with #{other.class} failed"
end
cmp >= 0
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
# File mrblib/compar.rb, line 81
def between?(min, max)
self >= min and self <= max
end
Returns min if obj <=> min is
less than zero, max if obj <=>
max is greater than zero and obj otherwise.
12.clamp(0, 100) #=> 12 523.clamp(0, 100) #=> 100 -3.123.clamp(0, 100) #=> 0 'd'.clamp('a', 'f') #=> 'd' 'z'.clamp('a', 'f') #=> 'f'
# File mrbgems/mruby-compar-ext/mrblib/compar.rb, line 14
def clamp(min, max)
if (min <=> max) > 0
raise ArgumentError, "min argument must be smaller than max argument"
end
c = self <=> min
if c == 0
return self
elsif c < 0
return min
end
c = self <=> max
if c > 0
return max
else
return self
end
end