Module: Tricle::Aggregation

Extended by:
ActiveSupport::Concern
Included in:
Metric
Defined in:
lib/tricle/aggregation.rb

Instance Method Summary collapse

Instance Method Details

#days_ago(n) ⇒ Object



16
17
18
19
20
# File 'lib/tricle/aggregation.rb', line 16

def days_ago(n)
  start_at = self.now.beginning_of_day.ago(n.days)
  end_at = start_at + 1.day
  self.size_for_range(start_at, end_at)
end

#last_weekObject



32
33
34
# File 'lib/tricle/aggregation.rb', line 32

def last_week
  self.weeks_ago(1)
end

#week_average_this_quarterObject



42
43
44
# File 'lib/tricle/aggregation.rb', line 42

def week_average_this_quarter
  self.weeks_average(13)
end

#weeks_ago(n) ⇒ Object



26
27
28
29
30
# File 'lib/tricle/aggregation.rb', line 26

def weeks_ago(n)
  start_at = self.now.beginning_of_week.weeks_ago(n)
  end_at = start_at + 7.days
  self.size_for_range(start_at, end_at)
end

#weeks_average(past_num_weeks) ⇒ Object



36
37
38
39
40
# File 'lib/tricle/aggregation.rb', line 36

def weeks_average(past_num_weeks)
  weeks_range = 1..past_num_weeks
  total = weeks_range.reduce(0){|sum, n| sum + self.weeks_ago(n) }
  total.to_f / past_num_weeks
end

#yesterdayObject



22
23
24
# File 'lib/tricle/aggregation.rb', line 22

def yesterday
  self.days_ago(1)
end