./lib/customer_request.rb in burger_game-1.1.0 vs ./lib/customer_request.rb in burger_game-1.1.1
- old
+ new
@@ -1,132 +1,132 @@
-require_relative './recipe'
-require_relative './screen_message'
-
-class CustomerRequest
- # ERROR HANDLING for reading files
- begin
- # Read customer_request.JSON file
- customer_file = File.read(File.join(File.dirname(__FILE__), './customer_request.json'))
-
- rescue Errno::ENOENT => e
- puts "Could not find customer_request.json file. Please put customer_request.json in the 'data' directory."
- puts e.message
- exit
- rescue => e
- puts "Something went wrong."
- puts "Error message: " + e.message
- exit
- end
-
- begin
- # Read customer_response.JSON file
- response_file = File.read(File.join(File.dirname(__FILE__), './customer_response.json'))
-
- rescue Errno::ENOENT => e
- puts "Could not find customer_response.json file. Please put customer_response.json in the 'data' directory."
- puts e.message
- exit
- rescue => e
- puts "Something went wrong."
- puts "Error message: " + e.message
- exit
- end
-
- # Parse JSON file into array
- @@all_customers = JSON.parse(customer_file)
- @@customer_responses = JSON.parse(response_file)
-
- # Collect customer names (array of strings)
- # and number of customers
- # and customer recipe names request (array of strings)
- # and customer ingredient changes (array of hashes)
- # and customer requests text (array of strings)
- # and customer preferences text (array of strings)
- @@customer_names = []
- @@no_of_customer = 0
- @@customer_recipe_names = []
- @@customer_ingredient_changes = []
- @@customer_requests_text = []
- @@customer_preferences_text = []
- @@all_customers.each do |customer|
- customer.each do |name, request|
- @@customer_names << name
- @@customer_recipe_names << request[0].keys[0]
- @@customer_ingredient_changes << request[0].values[0][0]
- @@customer_requests_text << request[1].values.join
- @@customer_preferences_text << request[2].values.join
- end
- end
- @@no_of_customer = @@customer_names.length
-
- # Collect customer responses (array of arrays of hashes)
- @@responses = []
- @@customer_responses.each do |responses|
- @@responses << responses.values
- end
-
- def initialize
- end
-
- def self.no_of_customer
- @@no_of_customer
- end
-
- def get_request(customer_no)
- # Get all original recipes for base recipes (array of hashes)
- base_recipes = Recipe.all_recipes
-
- # Create customer recipe based on preference (array of hashes)
- customer_recipe = []
- requested_recipe_name = @@customer_recipe_names[customer_no]
- requested_ingredient = @@customer_ingredient_changes[customer_no]
- base_recipes.each do |recipe|
- if recipe.key?(requested_recipe_name)
- customer_recipe = recipe[requested_recipe_name].dup # => Not yet changed
- # Change here
- customer_recipe.each_with_index do |list, i|
- if list.keys === requested_ingredient.keys
- customer_recipe[i] = requested_ingredient
- end
- end
- end
- end
-
- # Array of ingredient-quantity hashes
- customer_recipe
- end
-
- def display_request(customer_no)
- # Initialise frame for output formatting
- dialog_box = ScreenMessage.new
- customer_name = @@customer_names[customer_no]
- customer_request_text = @@customer_requests_text[customer_no]
- customer_preference_text = @@customer_preferences_text[customer_no]
-
- # Put all string output lines in a variable
- msg = ""
- msg += customer_request_text
- msg += "\n"
- msg += customer_preference_text
-
- # Format output using frame
- dialog_box.msg_frame(customer_name, msg)
- end
-
- def display_response(customer_no, mood)
- # Initialise frame for output formatting
- dialog_box = ScreenMessage.new
- customer_name = @@customer_names[customer_no]
- customer_response = @@responses[customer_no]
-
- # Put all string output lines in a variable
- msg = ""
- customer_response.each do |response|
- response.each do |type, text|
- msg += text if mood === type
- end
- end
-
- # Format output using frame
- dialog_box.msg_frame(customer_name, msg)
- end
+require_relative './recipe'
+require_relative './screen_message'
+
+class CustomerRequest
+ # ERROR HANDLING for reading files
+ begin
+ # Read customer_request.JSON file
+ customer_file = File.read(File.join(File.dirname(__FILE__), './customer_request.json'))
+
+ rescue Errno::ENOENT => e
+ puts "Could not find customer_request.json file. Please put customer_request.json in the 'data' directory."
+ puts e.message
+ exit
+ rescue => e
+ puts "Something went wrong."
+ puts "Error message: " + e.message
+ exit
+ end
+
+ begin
+ # Read customer_response.JSON file
+ response_file = File.read(File.join(File.dirname(__FILE__), './customer_response.json'))
+
+ rescue Errno::ENOENT => e
+ puts "Could not find customer_response.json file. Please put customer_response.json in the 'data' directory."
+ puts e.message
+ exit
+ rescue => e
+ puts "Something went wrong."
+ puts "Error message: " + e.message
+ exit
+ end
+
+ # Parse JSON file into array
+ @@all_customers = JSON.parse(customer_file)
+ @@customer_responses = JSON.parse(response_file)
+
+ # Collect customer names (array of strings)
+ # and number of customers
+ # and customer recipe names request (array of strings)
+ # and customer ingredient changes (array of hashes)
+ # and customer requests text (array of strings)
+ # and customer preferences text (array of strings)
+ @@customer_names = []
+ @@no_of_customer = 0
+ @@customer_recipe_names = []
+ @@customer_ingredient_changes = []
+ @@customer_requests_text = []
+ @@customer_preferences_text = []
+ @@all_customers.each do |customer|
+ customer.each do |name, request|
+ @@customer_names << name
+ @@customer_recipe_names << request[0].keys[0]
+ @@customer_ingredient_changes << request[0].values[0][0]
+ @@customer_requests_text << request[1].values.join
+ @@customer_preferences_text << request[2].values.join
+ end
+ end
+ @@no_of_customer = @@customer_names.length
+
+ # Collect customer responses (array of arrays of hashes)
+ @@responses = []
+ @@customer_responses.each do |responses|
+ @@responses << responses.values
+ end
+
+ def initialize
+ end
+
+ def self.no_of_customer
+ @@no_of_customer
+ end
+
+ def get_request(customer_no)
+ # Get all original recipes for base recipes (array of hashes)
+ base_recipes = Recipe.all_recipes
+
+ # Create customer recipe based on preference (array of hashes)
+ customer_recipe = []
+ requested_recipe_name = @@customer_recipe_names[customer_no]
+ requested_ingredient = @@customer_ingredient_changes[customer_no]
+ base_recipes.each do |recipe|
+ if recipe.key?(requested_recipe_name)
+ customer_recipe = recipe[requested_recipe_name].dup # => Not yet changed
+ # Change here
+ customer_recipe.each_with_index do |list, i|
+ if list.keys === requested_ingredient.keys
+ customer_recipe[i] = requested_ingredient
+ end
+ end
+ end
+ end
+
+ # Array of ingredient-quantity hashes
+ customer_recipe
+ end
+
+ def display_request(customer_no)
+ # Initialise frame for output formatting
+ dialog_box = ScreenMessage.new
+ customer_name = @@customer_names[customer_no]
+ customer_request_text = @@customer_requests_text[customer_no]
+ customer_preference_text = @@customer_preferences_text[customer_no]
+
+ # Put all string output lines in a variable
+ msg = ""
+ msg += customer_request_text
+ msg += "\n"
+ msg += customer_preference_text
+
+ # Format output using frame
+ dialog_box.msg_frame(customer_name, msg)
+ end
+
+ def display_response(customer_no, mood)
+ # Initialise frame for output formatting
+ dialog_box = ScreenMessage.new
+ customer_name = @@customer_names[customer_no]
+ customer_response = @@responses[customer_no]
+
+ # Put all string output lines in a variable
+ msg = ""
+ customer_response.each do |response|
+ response.each do |type, text|
+ msg += text if mood === type
+ end
+ end
+
+ # Format output using frame
+ dialog_box.msg_frame(customer_name, msg)
+ end
end
\ No newline at end of file