Class: Mincer::Processors::Sort
- Inherits:
-
Object
- Object
- Mincer::Processors::Sort
- Defined in:
- lib/mincer/processors/sort.rb
Instance Method Summary collapse
- #apply ⇒ Object
-
#initialize(mincer) ⇒ Sort
constructor
A new instance of Sort.
- #order_attr ⇒ Object
- #sort_attr ⇒ Object
- #sort_string ⇒ Object
Constructor Details
#initialize(mincer) ⇒ Sort
Returns a new instance of Sort.
5 6 7 |
# File 'lib/mincer/processors/sort.rb', line 5 def initialize(mincer) @mincer, @args, @relation = mincer, mincer.args, mincer.relation end |
Instance Method Details
#apply ⇒ Object
9 10 11 12 13 |
# File 'lib/mincer/processors/sort.rb', line 9 def apply relation = @relation.order(sort_string) @mincer.sort_attribute, @mincer.sort_order = relation.try(:order_values).try(:first).try(:split) relation end |
#order_attr ⇒ Object
23 24 25 |
# File 'lib/mincer/processors/sort.rb', line 23 def order_attr (%w{ASC DESC}.include?(@args['order']) && @args['order']) || @mincer.default_sort_order end |
#sort_attr ⇒ Object
19 20 21 |
# File 'lib/mincer/processors/sort.rb', line 19 def sort_attr @mincer.allowed_sort_attributes.include?(@args['sort']) && @args['sort'] end |
#sort_string ⇒ Object
15 16 17 |
# File 'lib/mincer/processors/sort.rb', line 15 def sort_string sort_attr ? "#{sort_attr} #{order_attr}, #{@mincer.default_sort_attribute}" : "#{@mincer.default_sort_attribute} #{order_attr}" end |