class NutritionCalculator::DataSummarizer

Attributes

diet_period[RW]
source_data[RW]

Public Class Methods

new(source_data:, diet_period:) click to toggle source
# File lib/nutrition_calculator/data_summarizer.rb, line 3
def initialize(source_data:, diet_period:)
  self.source_data = source_data
  self.diet_period = diet_period
end

Public Instance Methods

calories_burned_today() click to toggle source
# File lib/nutrition_calculator/data_summarizer.rb, line 20
def calories_burned_today
  source_data_for_day(current_day)['calories_burned']
end
calories_consumed_today() click to toggle source
# File lib/nutrition_calculator/data_summarizer.rb, line 16
def calories_consumed_today
  source_data_for_day(current_day)['calories_consumed']
end
prior_days_net_calories() click to toggle source
# File lib/nutrition_calculator/data_summarizer.rb, line 8
def prior_days_net_calories
  return 0 if current_day == 0
  values = (0...current_day).map { |day|
    net_calories_for_day(day)
  }
  values.reduce { |weekly_net, daily_net| weekly_net + daily_net }
end

Private Instance Methods

current_day() click to toggle source
# File lib/nutrition_calculator/data_summarizer.rb, line 27
def current_day
  diet_period.current_day
end
net_calories_for_day(day) click to toggle source
# File lib/nutrition_calculator/data_summarizer.rb, line 31
def net_calories_for_day(day)
  data = source_data_for_day(day)
  data['calories_consumed'] - data['calories_burned']
end
source_data_for_day(day) click to toggle source
# File lib/nutrition_calculator/data_summarizer.rb, line 36
def source_data_for_day(day)
  source_data.fetch(day) do
    {'calories_consumed' => 0, 'calories_burned' => 0}
  end
end