forked from rainbough/Library
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathcookbook.rb
75 lines (52 loc) · 1.43 KB
/
cookbook.rb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
class Cookbook
attr_accessor :title, :recipes, :author
def initialize(title, author)
@title = title
@recipes = []
@author = author
end
def add_recipe(recipe)
@recipes.push(recipe)
puts "Added a recipe to the collection: #{recipe.title}"
end
def recipe_titles
@recipes.each { |recipe| puts "#{recipe.title}" }
end
def recipe_ingredients
@recipes.each { |recipe| puts "These are the ingredients for #{recipe.title}: #{recipe.ingredients.join(", ")}" }
end
def print_cookbook
puts "Cookbook Title: #{title}"
puts "Author: #{author}"
@recipes.each do |recipe|
counter = 1
puts "Recipe: #{recipe.title}"
puts "Ingredients: #{recipe.ingredients.join(", ")}"
recipe.steps.each do |step|
puts "#{counter.to_i}. #{step}"
counter += 1
end
end
end
end
class Recipe
attr_accessor :title
attr_accessor :ingredients
attr_accessor :steps
def initialize(title, ingredients, steps)
@title = title
@ingredients = ingredients
@steps = steps
end
def print_recipe
puts "To make #{title}, use #{ingredients.join(", ")}, and follow these steps: #{steps.join(", ")}"
end
def number_ingredients
puts "It takes #{ingredients.length} ingredients to make #{title}."
if ingredients.length <= 3
puts "This is a simple recipe."
else
puts "This recipe requires some preparation."
end
end
end