class EagerGroup::Preloader::AggregationFinder
Attributes
arguments[R]
definition[R]
klass[R]
record_ids[R]
reflection[R]
Public Class Methods
new(klass, definition, arguments, records)
click to toggle source
# File lib/eager_group/preloader/aggregation_finder.rb, line 8 def initialize(klass, definition, arguments, records) @klass = klass @definition = definition @reflection = @klass.reflect_on_association(definition.association) @arguments = arguments @records = records end
Public Instance Methods
aggregate_hash()
click to toggle source
# File lib/eager_group/preloader/aggregation_finder.rb, line 28 def aggregate_hash raise NotImplementedError, 'Method "aggregate_hash" must be implemented in subclass' end
definition_scope()
click to toggle source
# File lib/eager_group/preloader/aggregation_finder.rb, line 16 def definition_scope reflection.klass.instance_exec(*arguments, &definition.scope) if definition.scope end
group_by_key()
click to toggle source
# File lib/eager_group/preloader/aggregation_finder.rb, line 24 def group_by_key @klass.primary_key end
Private Instance Methods
polymophic_as_condition()
click to toggle source
# File lib/eager_group/preloader/aggregation_finder.rb, line 34 def polymophic_as_condition reflection.type ? { reflection.name => { reflection.type => @klass.base_class.name } } : [] end