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
10
|
# File 'lib/brainstem/query_strategies/base_strategy.rb', line 7
def initialize(options)
@options = options
@last_count = nil
end
|
Instance Method Details
#calculate_per_page ⇒ Object
35
36
37
38
39
|
# File 'lib/brainstem/query_strategies/base_strategy.rb', line 35
def calculate_per_page
per_page = [(@options[:params][:per_page] || @options[:per_page] || @options[:default_per_page]).to_i, (@options[:max_per_page] || @options[:default_max_per_page]).to_i].min
per_page = @options[:default_per_page] if per_page < 1
per_page
end
|
#evaluate_count(count_scope) ⇒ Object
29
30
31
32
33
|
# File 'lib/brainstem/query_strategies/base_strategy.rb', line 29
def evaluate_count(count_scope)
ret = @last_count || count_scope.count
@last_count = nil
ret
end
|
#evaluate_scope(scope) ⇒ Object
16
17
18
19
20
21
22
23
24
25
26
27
|
# File 'lib/brainstem/query_strategies/base_strategy.rb', line 16
def evaluate_scope(scope)
@last_count = nil
if ActiveRecord::Base.connection.instance_values["config"][:adapter] =~ /mysql|sqlite/i
get_ids_sql(scope)
else
scope.to_a
end
end
|
#execute(scope) ⇒ Object
12
13
14
|
# File 'lib/brainstem/query_strategies/base_strategy.rb', line 12
def execute(scope)
raise NotImplemented, 'Your strategy class must implement an `execute` method'
end
|