Module: Tricle::Aggregation
Instance Method Summary collapse
- #days_ago(n) ⇒ Object
- #last_week ⇒ Object
- #week_average_this_quarter ⇒ Object
- #weekly_values(past_num_weeks) ⇒ Object
- #weeks_ago(n) ⇒ Object
- #weeks_average(past_num_weeks) ⇒ Object
- #yesterday ⇒ Object
Instance Method Details
#days_ago(n) ⇒ Object
7 8 9 10 11 |
# File 'lib/tricle/aggregation.rb', line 7 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
23 24 25 |
# File 'lib/tricle/aggregation.rb', line 23 def last_week self.weeks_ago(1) end |
#week_average_this_quarter ⇒ Object
38 39 40 |
# File 'lib/tricle/aggregation.rb', line 38 def week_average_this_quarter self.weeks_average(13) end |
#weekly_values(past_num_weeks) ⇒ Object
27 28 29 30 |
# File 'lib/tricle/aggregation.rb', line 27 def weekly_values(past_num_weeks) weeks_range = past_num_weeks.downto(1) weeks_range.map{|n| self.weeks_ago(n) } end |
#weeks_ago(n) ⇒ Object
17 18 19 20 21 |
# File 'lib/tricle/aggregation.rb', line 17 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
32 33 34 35 36 |
# File 'lib/tricle/aggregation.rb', line 32 def weeks_average(past_num_weeks) values = self.weekly_values(past_num_weeks) total = values.reduce(0, :+) total.to_f / past_num_weeks end |
#yesterday ⇒ Object
13 14 15 |
# File 'lib/tricle/aggregation.rb', line 13 def yesterday self.days_ago(1) end |