From a25f39308ccec67dfb46f268ff844522e72fe7e0 Mon Sep 17 00:00:00 2001 From: Dan Barber Date: Mon, 11 May 2015 16:51:09 +0100 Subject: [PATCH] Refactor and add undo. --- lib/match.rb | 8 +++++++- lib/player.rb | 14 +++++++------- public/tags/scores.tag | 1 + scoreboard.rb | 34 ++++++++++++++++++++++++---------- 4 files changed, 39 insertions(+), 18 deletions(-) diff --git a/lib/match.rb b/lib/match.rb index 743f98b..82ba2c2 100644 --- a/lib/match.rb +++ b/lib/match.rb @@ -1,6 +1,7 @@ class Match def initialize - @one, @two = Player.new('Player One'), Player.new('Player Two') + @one, @two = Player.new(:one, name: 'Player One'), + Player.new(:two, name: 'Player Two') end def add_point(colour) @@ -14,6 +15,11 @@ class Match end end + def undo_point(colour) + player = players[colour] + player.score.decrement if player.score.value > 0 + end + def reset_scores @one.score.reset @two.score.reset diff --git a/lib/player.rb b/lib/player.rb index ac7bd7f..6aa3bc5 100644 --- a/lib/player.rb +++ b/lib/player.rb @@ -1,11 +1,15 @@ class Player include Redis::Objects + attr_reader :id + + value :name counter :score counter :games - def initialize(name) - @name = name + def initialize(id, attr = {}) + @id = id + self.name = attr[:name] end def has_beaten(player) @@ -13,12 +17,8 @@ class Player end def attributes - { name: @name, + { name: self.name.value, score: self.score.value, games: self.games.value } end - - def id - @name.downcase.gsub(/[^a-z]/, '-') - end end diff --git a/public/tags/scores.tag b/public/tags/scores.tag index 778b32a..218f808 100644 --- a/public/tags/scores.tag +++ b/public/tags/scores.tag @@ -13,6 +13,7 @@