Module: BabySqueel::ActiveRecord::Calculations

Defined in:
lib/baby_squeel/active_record/calculations.rb

Instance Method Summary collapse

Instance Method Details

#aggregate_column(column_name) ⇒ Object



32
33
34
35
36
37
38
# File 'lib/baby_squeel/active_record/calculations.rb', line 32

def aggregate_column(column_name)
  if column_name.kind_of? Calculation
    column_name.node
  else
    super
  end
end

#averaging(&block) ⇒ Object



19
20
21
# File 'lib/baby_squeel/active_record/calculations.rb', line 19

def averaging(&block)
  average Calculation.new(DSL.evaluate(self, &block))
end

#counting(&block) ⇒ Object



11
12
13
# File 'lib/baby_squeel/active_record/calculations.rb', line 11

def counting(&block)
  count Calculation.new(DSL.evaluate(self, &block))
end

#maximizing(&block) ⇒ Object



27
28
29
# File 'lib/baby_squeel/active_record/calculations.rb', line 27

def maximizing(&block)
  maximum Calculation.new(DSL.evaluate(self, &block))
end

#minimizing(&block) ⇒ Object



23
24
25
# File 'lib/baby_squeel/active_record/calculations.rb', line 23

def minimizing(&block)
  minimum Calculation.new(DSL.evaluate(self, &block))
end

#plucking(&block) ⇒ Object



7
8
9
# File 'lib/baby_squeel/active_record/calculations.rb', line 7

def plucking(&block)
  pluck Pluck.wrap(DSL.evaluate(self, &block))
end

#summing(&block) ⇒ Object



15
16
17
# File 'lib/baby_squeel/active_record/calculations.rb', line 15

def summing(&block)
  sum Calculation.new(DSL.evaluate(self, &block))
end

#type_for(field) ⇒ Object



42
43
44
45
46
47
48
# File 'lib/baby_squeel/active_record/calculations.rb', line 42

def type_for(field)
  if field.kind_of? Calculation
    field
  else
    super
  end
end