Class: Filterameter::QueryBuilder
- Inherits:
-
Object
- Object
- Filterameter::QueryBuilder
- Defined in:
- lib/filterameter/query_builder.rb
Overview
Query Builder
Class Query Builder turns filter parameters into a query.
Instance Method Summary collapse
- #build_query(filter_params, starting_query = nil) ⇒ Object
-
#initialize(default_query, filter_registry) ⇒ QueryBuilder
constructor
A new instance of QueryBuilder.
Constructor Details
#initialize(default_query, filter_registry) ⇒ QueryBuilder
Returns a new instance of QueryBuilder.
8 9 10 11 |
# File 'lib/filterameter/query_builder.rb', line 8 def initialize(default_query, filter_registry) @default_query = default_query @registry = filter_registry end |
Instance Method Details
#build_query(filter_params, starting_query = nil) ⇒ Object
13 14 15 16 17 18 19 |
# File 'lib/filterameter/query_builder.rb', line 13 def build_query(filter_params, starting_query = nil) valid_filters(filter_params.stringify_keys) .tap { |parameters| convert_min_and_max_to_range(parameters) } .reduce(starting_query || @default_query) do |query, (name, value)| add_filter_parameter_to_query(query, name, value) end end |