Module: Comparable
- Included in:
- Association, Duration, Tuple, VersionNumber
- Defined in:
- lib/core/facets/comparable/cmp.rb,
lib/core/facets/comparable/bound.rb
Instance Method Summary collapse
-
#at_least(x) ⇒ Object
Returns the lower of self or x.
-
#at_most(x) ⇒ Object
Returns the greater of self or x.
-
#cap(upper) ⇒ Object
Returns the greater of self or x.
-
#clip(lower, upper = nil) ⇒ Object
(also: #bound)
Returns self if above the given lower bound, or within the given lower and upper bounds, otherwise returns the the bound of which the value falls outside.
-
#cmp(o) ⇒ Object
Alternate name for comparison operator #<=>.
Instance Method Details
#at_least(x) ⇒ Object
Returns the lower of self or x.
4.at_least(5) #=> 5
6.at_least(5) #=> 6
CREDIT Florian Gross
10 11 12 |
# File 'lib/core/facets/comparable/bound.rb', line 10 def at_least(x) (self >= x) ? self : x end |
#at_most(x) ⇒ Object
Returns the greater of self or x.
4.at_most(5) #=> 4
6.at_most(5) #=> 5
CREDIT Florian Gross
21 22 23 |
# File 'lib/core/facets/comparable/bound.rb', line 21 def at_most(x) (self <= x) ? self : x end |
#cap(upper) ⇒ Object
Returns the greater of self or x.
4.cap(5) #=> 4
6.cap(5) #=> 5
CREDIT Trans
54 55 56 |
# File 'lib/core/facets/comparable/bound.rb', line 54 def cap(upper) (self <= upper) ? self : upper end |
#clip(lower, upper = nil) ⇒ Object Also known as: bound
Returns self if above the given lower bound, or within the given lower and upper bounds, otherwise returns the the bound of which the value falls outside.
4.clip(3) #=> 4
4.clip(5) #=> 5
4.clip(2,7) #=> 4
9.clip(2,7) #=> 7
1.clip(2,7) #=> 2
CREDIT Trans
38 39 40 41 42 43 |
# File 'lib/core/facets/comparable/bound.rb', line 38 def clip(lower, upper=nil) return lower if self < lower return self unless upper return upper if self > upper return self end |
#cmp(o) ⇒ Object
Alternate name for comparison operator #<=>.
3.cmp(1) #=> 1
3.cmp(3) #=> 0
3.cmp(10) #=> -1
This fundamental compare method is used to keep comparison compatible with #succ.
CREDIT Peter Vanbroekhoven
20 21 22 |
# File 'lib/core/facets/comparable/cmp.rb', line 20 def cmp(o) self<=>o end |