Class: NutritionCalculator::DataSummarizer

Inherits:
Object
  • Object
show all
Defined in:
lib/nutrition_calculator/data_summarizer.rb

Constant Summary collapse

SUNDAY =
7
MONDAY =
1

Instance Method Summary collapse

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_todayObject



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_todayObject



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_dayObject

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_caloriesObject



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