module Lanes::Concerns::SortingExpressions::ClassMethods

Public Instance Methods

append_sort_to_query(query, field, dir) click to toggle source
# File lib/lanes/concerns/sorting_expressions.rb, line 22
def append_sort_to_query(query, field, dir)
    dir = :asc unless dir == :desc
    if @sorting_expressions && (block = @sorting_expressions[field])
        block.call(query, dir)
    else
        query.order(field.gsub(/[^\w|^\.]/,'') + ' ' +
                      ( ( :asc == dir ) ? 'ASC' : 'DESC' ) )
    end
end
export_sort( name, &block ) click to toggle source

Add a proc that will be called to add a sort expression to a query. The proc should accept an arel query object and a single direction parameter, which will be a symbol value of :asc or :desc It must return a arel query with the sort applied @param name [String] The name of the expression

# File lib/lanes/concerns/sorting_expressions.rb, line 13
def export_sort( name, &block )
    @sorting_expressions ||= {}
    @sorting_expressions[name.to_s] = block
end
has_sorting_expression?(name) click to toggle source
# File lib/lanes/concerns/sorting_expressions.rb, line 18
def has_sorting_expression?(name)
    @sorting_expressions && @sorting_expressions[name]
end