Class: MealPlanner

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

Instance Method Summary collapse

Constructor Details

#initialize(user, menu, budget) ⇒ MealPlanner

weights to break down user budget



4
5
6
7
8
9
10
11
12
13
14
15
16
17
# File 'lib/meal_planner.rb', line 4

def initialize(user,menu,budget)
    @user = user
    @menu = menu
    @budget = budget.amount
    @BREAKFAST_PERCENT = 25
    @LUNCH_PERCENT = 40
    @DINNER_PERCENT = 35
    @BREAKFAST_IDENTIFIER = 1
    @LUNCH_IDENTIFIER = 2
    @DINNER_IDENTIFIER = 3
    @VEGAN = 1
    @VEGETERIAN = 2
    @NONE = 3
end

Instance Method Details

#generate_daily_meal_planObject

generating meal plans for monthly weekly and daily



41
42
43
44
45
46
47
# File 'lib/meal_planner.rb', line 41

def generate_daily_meal_plan
    return {
        :breakfast => get_user_menu(get_price(@BREAKFAST_PERCENT), @BREAKFAST_IDENTIFIER).sample,
        :lunch => get_user_menu(get_price(@LUNCH_PERCENT), @LUNCH_IDENTIFIER).sample,
        :dinner => get_user_menu(get_price(@DINNER_PERCENT), @DINNER_IDENTIFIER).sample
    }
end

#generate_meal_planObject

getting meal plan



20
21
22
23
24
25
26
27
28
# File 'lib/meal_planner.rb', line 20

def generate_meal_plan
    if budget.budget_type == "daily"
        return generate_daily_meal_plan
    elsif budget.budget_type == "weekly"
        return generate_weekly_meal_plan
    elsif budget.budget_type == "monthly"
        return generate_monthly_meal_plan
    end
end

#generate_monthly_meal_planObject



58
59
60
61
62
63
64
65
# File 'lib/meal_planner.rb', line 58

def generate_monthly_meal_plan
        @budget = @budget / 31 # from daily budget
        meal_plan = Array.new
        31.times do |n|
            meal_plan.push(generate_daily_meal_plan)
        end
        return meal_plan
end

#generate_weekly_meal_planObject



49
50
51
52
53
54
55
56
# File 'lib/meal_planner.rb', line 49

def generate_weekly_meal_plan
    @budget = @budget / 7 # get daily budget
    meal_plan = Array.new
    7.times do |n|
        meal_plan.push(generate_daily_meal_plan)
    end
    return meal_plan
end

#get_price(percent) ⇒ Object

calculation for breakfast



31
32
33
# File 'lib/meal_planner.rb', line 31

def get_price(percent)
    return (@budget * percent) / 100
end

#get_user_menu(price, menu_category_id) ⇒ Object

breakfast filtering



36
37
38
# File 'lib/meal_planner.rb', line 36

def get_user_menu(price, menu_category_id)
    return @menu.select {|menu| menu["price"] <= price && menu["menu_category_id"]  == menu_category_id  && menu["menu_type_id"] == @user.menu_type_id }
end