Class: NutritionCalculator::DataSummarizer
- Inherits:
-
Object
- Object
- NutritionCalculator::DataSummarizer
- Defined in:
- lib/nutrition_calculator/data_summarizer.rb
Constant Summary collapse
- SUNDAY =
7
- MONDAY =
1
Instance Method Summary collapse
- #calories_burned_today ⇒ Object
- #calories_consumed_today ⇒ Object
-
#current_day ⇒ Object
TODO: this probably isn’t the right place to put this, since it looks like it does need to be exposed to the CalorieBudgeter as well.
-
#initialize(source_data:, calendar: Date) ⇒ DataSummarizer
constructor
A new instance of DataSummarizer.
- #prior_days_net_calories ⇒ Object
Constructor Details
#initialize(source_data:, calendar: Date) ⇒ DataSummarizer
Returns a new instance of DataSummarizer.
8 9 10 11 |
# File 'lib/nutrition_calculator/data_summarizer.rb', line 8 def initialize(source_data:, calendar: Date) self.source_data = source_data self.calendar = calendar end |
Instance Method Details
#calories_burned_today ⇒ Object
23 24 25 |
# File 'lib/nutrition_calculator/data_summarizer.rb', line 23 def calories_burned_today source_data_for_day(current_day)['calories_burned'] end |
#calories_consumed_today ⇒ Object
19 20 21 |
# File 'lib/nutrition_calculator/data_summarizer.rb', line 19 def calories_consumed_today source_data_for_day(current_day)['calories_consumed'] end |
#current_day ⇒ Object
TODO: this probably isn’t the right place to put this, since it looks like it does need to be exposed to the CalorieBudgeter as well. Still, this is better than having it live in the CLI script itself for now.
30 31 32 33 34 |
# File 'lib/nutrition_calculator/data_summarizer.rb', line 30 def current_day day = calendar.today.wday day = SUNDAY if day < MONDAY day end |
#prior_days_net_calories ⇒ Object
13 14 15 16 17 |
# File 'lib/nutrition_calculator/data_summarizer.rb', line 13 def prior_days_net_calories return 0 if current_day == MONDAY values = (1...current_day).map { |day| net_calories_for_day(day) } values.reduce { |weekly_net, daily_net| weekly_net + daily_net } end |