Class: Wallaby::ActiveRecord::ModelServiceProvider::Querier

Inherits:
Object
  • Object
show all
Defined in:
lib/adaptors/wallaby/active_record/model_service_provider/querier.rb,
lib/adaptors/wallaby/active_record/model_service_provider/querier/transformer.rb

Overview

Query builder

Defined Under Namespace

Classes: Transformer

Constant Summary collapse

TEXT_FIELDS =
%w(string text citext longtext tinytext mediumtext).freeze

Instance Method Summary collapse

Constructor Details

#initialize(model_decorator) ⇒ Querier

Returns a new instance of Querier.

Parameters:



10
11
12
13
# File 'lib/adaptors/wallaby/active_record/model_service_provider/querier.rb', line 10

def initialize(model_decorator)
  @model_decorator = model_decorator
  @model_class = @model_decorator.model_class
end

Instance Method Details

#search(params) ⇒ ActiveRecord::Relation

Pull out the query expression string from the parameter ‘q`, use parser to understand the expression, then use transformer to run SQL arel query.

Parameters:

  • params (ActionController::Parameters)

Returns:

  • (ActiveRecord::Relation)


20
21
22
23
24
25
26
# File 'lib/adaptors/wallaby/active_record/model_service_provider/querier.rb', line 20

def search(params)
  filter_name, keywords, field_queries = extract params
  scope = filtered_by filter_name
  query = text_search keywords
  query = field_search field_queries, query
  scope.where query
end