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