module Comparable(T)

Overview

The Comparable mixin is used by classes whose objects may be ordered.

Including types must provide an #<=> method, which compares the receiver against another object, returning -1, 0, or +1 depending on whether the receiver is less than, equal to, or greater than the other object.

Comparable uses #<=> to implement the conventional comparison operators (#<, #<=, #==, #>=, and #>) and the method #between?.

Direct including types

Defined in:

comparable.cr

Instance Method Summary

Instance Method Detail

def <(other : T) #

Compares this object to other based on the receiver’s #<=> method, returning true if it returns -1.


[View source]
def <=(other : T) #

Compares this object to other based on the receiver’s #<=> method, returning true if it returns -1 or 0.


[View source]
abstract def <=>(other : T) #

Comparison operator. Returns 0 if the two objects are equal, a negative number if this object is considered less than other, or a positive number otherwise.

Subclasses define this method to provide class-specific ordering.

# Sort in a descending way
[4, 7, 2].sort { |x, y| x <=> y } # => [7, 4, 2]

[View source]
def ==(other : T) #

Compares this object to other based on the receiver’s #<=> method, returning true if it returns 0. Also returns true if this and other are the same object.


[View source]
def >(other : T) #

Compares this object to other based on the receiver’s #<=> method, returning true if it returns 1.


[View source]
def >=(other : T) #

Compares this object to other based on the receiver’s #<=> method, returning true if it returns 1 or 0.


[View source]
def between?(min, max) #

Returns false if self <=> min is less than zero or if self <=> max is greater than zero, true otherwise.


[View source]