Module: ByStar::Calculations::Sum

Included in:
ByStar::Calculations
Defined in:
lib/by_star/calculations/sum.rb

Instance Method Summary collapse

Instance Method Details

#sum_by_day(field, day = Time.zone.now, options = {}, &block) ⇒ Object



17
18
19
20
21
22
# File 'lib/by_star/calculations/sum.rb', line 17

def sum_by_day(field, day=Time.zone.now, options={}, &block)
  scoped_by(block) do
    day = parse(day)
    sum(field, { :conditions => conditions_for_range(day.beginning_of_day, day.end_of_day, options.delete(:field)) }.reverse_merge!(options))
  end
end

#sum_by_month(field, month = Time.zone.now.month, options = {}, &block) ⇒ Object



10
11
12
13
14
15
# File 'lib/by_star/calculations/sum.rb', line 10

def sum_by_month(field, month=Time.zone.now.month, options={}, &block)
  year, month = work_out_month(month, options.delete(:year))
  scoped_by(block) do
    sum(field, { :conditions => conditions_for_range(start_of_month(month, year), end_of_month(month, year), options.delete(:field)) }.reverse_merge!(options))
  end
end

#sum_by_year(field, year = Time.zone.now.year, options = {}, &block) ⇒ Object



4
5
6
7
8
# File 'lib/by_star/calculations/sum.rb', line 4

def sum_by_year(field, year=Time.zone.now.year, options={}, &block)
  scoped_by(block) do
    sum(field, { :conditions => conditions_for_range(start_of_year(year), end_of_year(year), options.delete(:field)) }.reverse_merge!(options))
  end
end