Week 3, day 4

Today we were issued our weekend challenge, to create a web version of a working rock-paper-scissors game. This will reinforce all our practice with Sinatra this week, and undoubtedly show the chinks in our armor.
Thankfully it's a long weekend due to Easter, so we have 4 days before we have to hand it in, and I'm not feeling particularly cofident about it at the moment.
The good news, however is that I've caught up on passing last weekend's challenge. My coach this week is a thorough coder and an excellent person to learn from, he showed me exactly how poor my design was before and how to use Single Responsibility Principles, Dependency Injection and Inversion to create a masterpiece in Ruby.
Follow me after the break to see my passing tests in all their glory.
Github link to the current repo for Makers Academy - Week 2 Weekend Challenge

Running RuboCop...
Inspecting 17 files
.................

17 files inspected, no offenses detected

[Coveralls] Set up the SimpleCov formatter.
[Coveralls] Using SimpleCov's default settings.

Customer
  has a name
  has a number

Dish
  has a name
  has a price

LineItem
  can contain a dish
  can contain a dish quantity
  can contain a subtotal

Menu
  has no dishes when created
  can add a dish
  can be displayed
  can have dishes removed from it

Message
  can send customer a text confirmation
  does not send customer a text without their number and an order

Order
  can generate a final bill with 1 line item
  can generate a final bill with 2 line items
  can have a grand total

Takeaway
  knows its customer's name
  knows its customer's number
  has a menu
  can present the customer with checkout confirmation

Finished in 0.01455 seconds (files took 0.60295 seconds to load)
20 examples, 0 failures
Written on April 2, 2015