Class: Brainstem::QueryStrategies::BaseStrategy
- Inherits:
-
Object
- Object
- Brainstem::QueryStrategies::BaseStrategy
show all
- Defined in:
- lib/brainstem/query_strategies/base_strategy.rb
Instance Method Summary
collapse
Constructor Details
Returns a new instance of BaseStrategy.
7
8
9
|
# File 'lib/brainstem/query_strategies/base_strategy.rb', line 7
def initialize(options)
@options = options
end
|
Instance Method Details
#evaluate_scope(scope) ⇒ Object
15
16
17
18
19
20
21
22
23
24
25
26
27
|
# File 'lib/brainstem/query_strategies/base_strategy.rb', line 15
def evaluate_scope(scope)
if(ActiveRecord::Base.connection.instance_values["config"][:adapter] =~ /mysql|sqlite/i)
ids = scope.pluck("#{scope.table_name}.id")
id_lookup = {}
ids.each.with_index { |id, index| id_lookup[id] = index }
primary_models = scope.klass.where(id: id_lookup.keys).sort_by { |model| id_lookup[model.id] }
else
primary_models = scope.to_a
end
end
|
#execute(scope) ⇒ Object
11
12
13
|
# File 'lib/brainstem/query_strategies/base_strategy.rb', line 11
def execute(scope)
raise NotImplemented, 'Your strategy class must implement an `execute` method'
end
|