bmordan / 05_Takeaway

Takeaway exercise using twilio

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

#Takeaway enter image description here

###Implement the following functionality:

  • list of dishes with prices
  • placing the order by giving the list of dishes, their quantities and a number that should be the exact total. If the sum is not correct the method should raise an error, otherwise the customer is sent a text saying that the order was placed successfully and that it will be delivered 1 hour from now, e.g. "Thank you! Your order was placed and will be delivered before 18:52".
  • The text sending functionality should be implemented using Twilio API. You'll need to register for it. It’s free. Use twilio-ruby gem to access the API
  • Use a Gemfile to manage your gems
  • Make sure that your Takeaway class is thoroughly tested and that you use mocks and/or stubs, as necessary to not to send texts when your tests are run
  • However, if your Takeaway class is loaded into IRB and the order is placed, the text should actually be sent

A free account on Twilio will only allow you to send texts to "verified" numbers. Use your mobile phone number, don't worry about the customer's mobile phone

Test in irb

require_relative './load.rb'

Create a new customer

 bernie = Customer.new(:name => "Bernie")

Look at the menu

menu = Menu.new

Ready to Order?

order = Order.new(bernie)

Add to your order like this

order.items << SubTotal.new( menu.items[0] , 3 )

here SubTotal takes ( the dish , the quantity ). You can create a new dish like this

Dish.new("Dish name", price)

Check on the total of your order like this

order.total

Finished? Place your order like this

bernie.place(order)
 => "Thank you Bernie! Your order was placed and will be delivered before 23:51" 

Wonderful. Your order is confirmed with a text.

enter image description here

About

Takeaway exercise using twilio


Languages

Language:Ruby 100.0%