class Admino::Query::Sorting

Attributes

config[R]
params[R]
query_i18n_key[R]

Public Class Methods

new(config, params, query_i18n_key = nil) click to toggle source
# File lib/admino/query/sorting.rb, line 12
def initialize(config, params, query_i18n_key = nil)
  @config = config
  @params = ActiveSupport::HashWithIndifferentAccess.new(params)
end

Public Instance Methods

active_scope() click to toggle source
# File lib/admino/query/sorting.rb, line 39
def active_scope
  if param_value && scopes.include?(param_value.to_sym)
    param_value.to_sym
  elsif default_scope
    default_scope
  else
    nil
  end
end
ascending?() click to toggle source
# File lib/admino/query/sorting.rb, line 29
def ascending?
  if params[:sort_order] == 'desc'
    false
  elsif params[:sort_order].blank? && active_scope == default_scope
    default_direction_is_ascending?
  else
    true
  end
end
augment_scope(scope) click to toggle source
# File lib/admino/query/sorting.rb, line 17
def augment_scope(scope)
  if active_scope
    scope.send(active_scope, ascending? ? :asc : :desc)
  else
    scope
  end
end
default_direction() click to toggle source
# File lib/admino/query/sorting.rb, line 53
def default_direction
  config.default_direction
end
default_direction_is_ascending?() click to toggle source
# File lib/admino/query/sorting.rb, line 57
def default_direction_is_ascending?
  default_direction != :desc
end
default_scope() click to toggle source
# File lib/admino/query/sorting.rb, line 49
def default_scope
  config.default_scope
end
is_scope_active?(scope) click to toggle source
# File lib/admino/query/sorting.rb, line 25
def is_scope_active?(scope)
  active_scope == scope.to_sym
end
param_name() click to toggle source
# File lib/admino/query/sorting.rb, line 65
def param_name
  :sorting
end
param_value() click to toggle source
# File lib/admino/query/sorting.rb, line 61
def param_value
  params.fetch(param_name, nil)
end
scopes() click to toggle source
# File lib/admino/query/sorting.rb, line 69
def scopes
  config.scopes
end