Class: QueryStringInterface::SortingFilters

Inherits:
Object
  • Object
show all
Includes:
Helpers
Defined in:
lib/query_string_interface/sorting_filters.rb

Constant Summary collapse

SORTING_FIELD_REGEXP =
/(.*)\.(#{QueryStringInterface::SORTING_OPERATORS.join('|')})/

Instance Method Summary collapse

Methods included from Helpers

#hash_with_indifferent_access, #replace_attribute, #replaced_attribute_name, #replaced_attribute_value

Constructor Details

#initialize(raw_filters, default_filters, attributes_to_replace = {}) ⇒ SortingFilters

Returns a new instance of SortingFilters.



7
8
9
10
11
# File 'lib/query_string_interface/sorting_filters.rb', line 7

def initialize(raw_filters, default_filters, attributes_to_replace={})
  @raw_filters = raw_filters.with_indifferent_access
  @default_filters = default_filters
  @attributes_to_replace = attributes_to_replace
end

Instance Method Details

#parseObject



13
14
15
16
17
18
19
# File 'lib/query_string_interface/sorting_filters.rb', line 13

def parse
  if @raw_filters.has_key?('order_by')
    parse_filters(@raw_filters['order_by'])
  else
    parse_filters(@default_filters)
  end
end

#parse_filters(filters) ⇒ Object



21
22
23
24
25
26
# File 'lib/query_string_interface/sorting_filters.rb', line 21

def parse_filters(filters)
  filters = filters.split('|') if filters.is_a?(String)
  filters.map do |filter|
    replace(filter)
  end
end