Module | Comparable
In: | lib/core/facets/comparable/cap.rb lib/core/facets/comparable/clip.rb lib/core/facets/comparable/cmp.rb lib/core/facets/comparable/op_get.rb

### Methods

[] at_least at_most bound cap clip cmp

### Included Modules

Comparable

### Public Class methods

[](*accessors)

Automatically generate comparitive definitions based on attribute fields.

      include Comparable[:a, :b]

is equivalent to including a module containing:

      def <=>(other)
        cmp = self.a <=> other.a; return cmp unless cmp == 0
        cmp = self.b <=> other.b; return cmp unless cmp == 0
        0
      end

### Public Instance methods

at_least(lower)

Returns the lower of self or x.

      4.at_least(5)  #=> 5
      6.at_least(5)  #=> 6

CREDIT: Florian Gross

at_most(upper)

Returns the greater of self or x.

      4.at_most(5)  #=> 4
      6.at_most(5)  #=> 5

CREDIT: Florian Gross

bound(lower, upper=nil)

Alias for clip

cap(upper)

Alias for at_most

clip(lower, upper=nil)

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 Florian Gross, Trans

cmp(o)

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

[Validate]