class Margrid::Sorter
Public Class Methods
load(data)
click to toggle source
# File lib/margrid/components.rb, line 23 def self.load(data) new data["sort"], data["direction"] if data.key? "sort" end
new(column, direction)
click to toggle source
Calls superclass method
# File lib/margrid/components.rb, line 3 def initialize(column, direction) super column.to_s, direction.to_s end
Public Instance Methods
apply(relation)
click to toggle source
# File lib/margrid/components.rb, line 7 def apply(relation) relation.reorder(sorting) end
asc?()
click to toggle source
# File lib/margrid/components.rb, line 19 def asc? !desc? end
desc?()
click to toggle source
# File lib/margrid/components.rb, line 15 def desc? direction == "desc" end
dump()
click to toggle source
# File lib/margrid/components.rb, line 27 def dump {"sort" => column, "direction" => direction} end
inverted()
click to toggle source
# File lib/margrid/components.rb, line 11 def inverted self.class.new(column, asc? ? :desc : :asc) end
Private Instance Methods
sorting()
click to toggle source
# File lib/margrid/components.rb, line 32 def sorting # FIXME: (Rails 4.2) Replace with # relation.reorder(column => direction) # when order accepts the direction as strings. {column => asc? ? :asc : :desc} end