Module: Tricle::Aggregation
Instance Method Summary collapse
- #days_ago(n) ⇒ Object
- #last_week ⇒ Object
- #week_average_this_quarter ⇒ Object
- #weeks_ago(n) ⇒ Object
- #weeks_average(past_num_weeks) ⇒ Object
- #yesterday ⇒ Object
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_week ⇒ Object
32 33 34 |
# File 'lib/tricle/aggregation.rb', line 32 def last_week self.weeks_ago(1) end |
#week_average_this_quarter ⇒ Object
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 |
#yesterday ⇒ Object
22 23 24 |
# File 'lib/tricle/aggregation.rb', line 22 def yesterday self.days_ago(1) end |