Class: Filterameter::QueryBuilder

Inherits:
Object
  • Object
show all
Defined in:
lib/filterameter/query_builder.rb

Overview

Query Builder

Class Query Builder turns filter parameters into a query.

Instance Method Summary collapse

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