Class: Admino::Query::Sorting
- Inherits:
-
Object
- Object
- Admino::Query::Sorting
- Defined in:
- lib/admino/query/sorting.rb
Instance Attribute Summary collapse
-
#config ⇒ Object
readonly
Returns the value of attribute config.
-
#params ⇒ Object
readonly
Returns the value of attribute params.
-
#query_i18n_key ⇒ Object
readonly
Returns the value of attribute query_i18n_key.
Instance Method Summary collapse
- #active_scope ⇒ Object
- #ascending? ⇒ Boolean
- #augment_scope(scope) ⇒ Object
- #default_direction ⇒ Object
- #default_direction_is_ascending? ⇒ Boolean
- #default_scope ⇒ Object
-
#initialize(config, params, query_i18n_key = nil) ⇒ Sorting
constructor
A new instance of Sorting.
- #is_scope_active?(scope) ⇒ Boolean
- #param_name ⇒ Object
- #param_value ⇒ Object
- #scopes ⇒ Object
Constructor Details
#initialize(config, params, query_i18n_key = nil) ⇒ Sorting
Returns a new instance of Sorting.
12 13 14 15 |
# File 'lib/admino/query/sorting.rb', line 12 def initialize(config, params, query_i18n_key = nil) @config = config @params = ActiveSupport::HashWithIndifferentAccess.new(params) end |
Instance Attribute Details
#config ⇒ Object (readonly)
Returns the value of attribute config.
9 10 11 |
# File 'lib/admino/query/sorting.rb', line 9 def config @config end |
#params ⇒ Object (readonly)
Returns the value of attribute params.
8 9 10 |
# File 'lib/admino/query/sorting.rb', line 8 def params @params end |
#query_i18n_key ⇒ Object (readonly)
Returns the value of attribute query_i18n_key.
10 11 12 |
# File 'lib/admino/query/sorting.rb', line 10 def query_i18n_key @query_i18n_key end |
Instance Method Details
#active_scope ⇒ Object
39 40 41 42 43 44 45 46 47 |
# 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? ⇒ Boolean
29 30 31 32 33 34 35 36 37 |
# 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) ⇒ Object
17 18 19 20 21 22 23 |
# 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 ⇒ Object
53 54 55 |
# File 'lib/admino/query/sorting.rb', line 53 def default_direction config.default_direction end |
#default_direction_is_ascending? ⇒ Boolean
57 58 59 |
# File 'lib/admino/query/sorting.rb', line 57 def default_direction_is_ascending? default_direction != :desc end |
#default_scope ⇒ Object
49 50 51 |
# File 'lib/admino/query/sorting.rb', line 49 def default_scope config.default_scope end |
#is_scope_active?(scope) ⇒ Boolean
25 26 27 |
# File 'lib/admino/query/sorting.rb', line 25 def is_scope_active?(scope) active_scope == scope.to_sym end |
#param_name ⇒ Object
65 66 67 |
# File 'lib/admino/query/sorting.rb', line 65 def param_name :sorting end |
#param_value ⇒ Object
61 62 63 |
# File 'lib/admino/query/sorting.rb', line 61 def param_value params.fetch(param_name, nil) end |
#scopes ⇒ Object
69 70 71 |
# File 'lib/admino/query/sorting.rb', line 69 def scopes config.scopes end |