module Axiom::Relation::Operation::Sorted::Methods
Public Instance Methods
sort()
click to toggle source
Return a sorted relation
@example
sorted = relation.sort
@return [Sorted]
@api public
# File lib/axiom/relation/operation/sorted.rb, line 162 def sort Sorted.new(self, nil) end
sort_by(*args, &block)
click to toggle source
Return a sorted relation
@example with a block
sorted = relation.sort_by { |r| [r.a.desc, r.b] }
@example with directions
sorted = relation.sort_by(directions)
@param [Array] args
optional arguments
@yield [relation]
optional block to evaluate for directions
@yieldparam [Relation] relation
@yieldreturn [DirectionSet, Array<Direction>, Header]
@return [Sorted]
@api public
# File lib/axiom/relation/operation/sorted.rb, line 150 def sort_by(*args, &block) Sorted.new(self, coerce_to_directions(*args, &block)) end
Private Instance Methods
coerce_to_directions(directions = Undefined, &block)
click to toggle source
Coerce the arguments and block into directions
@param [DirectionSet, Array<Direction>, Header] directions
optional directions
@yield [relation]
optional block to evaluate for directions
@yieldparam [Relation] relation
@yieldreturn [DirectionSet, Array<Direction>, Header]
@return [DirectionSet, Array<Direction>, Header]
@api private
# File lib/axiom/relation/operation/sorted.rb, line 183 def coerce_to_directions(directions = Undefined, &block) if directions.equal?(Undefined) header.context(&block).yield else directions end end