Class: QueryStringInterface::FilterCollection
- Inherits:
-
Object
- Object
- QueryStringInterface::FilterCollection
- Includes:
- Helpers
- Defined in:
- lib/query_string_interface/filter_collection.rb
Instance Attribute Summary collapse
-
#default_filters ⇒ Object
readonly
Returns the value of attribute default_filters.
-
#filters ⇒ Object
readonly
Returns the value of attribute filters.
Instance Method Summary collapse
- #filter_parsers ⇒ Object
-
#initialize(filters, default_filters = {}, attributes_to_replace = {}, raw_filters = nil) ⇒ FilterCollection
constructor
A new instance of FilterCollection.
- #parse ⇒ Object
Methods included from Helpers
#hash_with_indifferent_access, #replace_attribute, #replaced_attribute_name, #replaced_attribute_value
Constructor Details
#initialize(filters, default_filters = {}, attributes_to_replace = {}, raw_filters = nil) ⇒ FilterCollection
Returns a new instance of FilterCollection.
7 8 9 10 11 12 |
# File 'lib/query_string_interface/filter_collection.rb', line 7 def initialize(filters, default_filters={}, attributes_to_replace={}, raw_filters=nil) @filters = filters.with_indifferent_access @default_filters = default_filters.with_indifferent_access @attributes_to_replace = attributes_to_replace.with_indifferent_access @raw_filters = raw_filters.nil? ? @filters : raw_filters.with_indifferent_access end |
Instance Attribute Details
#default_filters ⇒ Object (readonly)
Returns the value of attribute default_filters.
5 6 7 |
# File 'lib/query_string_interface/filter_collection.rb', line 5 def default_filters @default_filters end |
#filters ⇒ Object (readonly)
Returns the value of attribute filters.
5 6 7 |
# File 'lib/query_string_interface/filter_collection.rb', line 5 def filters @filters end |
Instance Method Details
#filter_parsers ⇒ Object
23 24 25 26 27 |
# File 'lib/query_string_interface/filter_collection.rb', line 23 def filter_parsers @filter_parsers ||= filters.map do |raw_attribute, raw_value| Filter.new(raw_attribute, raw_value, @attributes_to_replace, @raw_filters) end end |
#parse ⇒ Object
14 15 16 17 18 19 20 21 |
# File 'lib/query_string_interface/filter_collection.rb', line 14 def parse result = default_filters.inject({}) do |result, item| raw_attribute, raw_value = item result[replaced_attribute_name(raw_attribute, @attributes_to_replace).to_s] = replaced_attribute_value(raw_attribute, raw_value, @attributes_to_replace, @raw_filters) result end result.merge(parsed_filters) end |