X-Git-Url: http://git.sourceforge.jp/view?p=shogi-server%2Fshogi-server.git;a=blobdiff_plain;f=shogi_server%2Fbuoy.rb;h=e2f88eed5d21ff67fe2ad97057b6753c6e5613f1;hp=7008ff1286828a4df7d2ee0f1ff577ee37baa943;hb=1b3407692131e16a8af23434f41b381134bf2fc0;hpb=55905536e62325f88dc770878bd7fa712f0f98aa diff --git a/shogi_server/buoy.rb b/shogi_server/buoy.rb index 7008ff1..e2f88ee 100644 --- a/shogi_server/buoy.rb +++ b/shogi_server/buoy.rb @@ -21,7 +21,7 @@ module ShogiServer end def ==(rhs) - return (@game_name == rhs.game_name && + return (@game_name == rhs.game_name && @moves == rhs.moves && @owner == rhs.owner && @count == rhs.count) @@ -102,28 +102,19 @@ module ShogiServer end end end - end + def decrement_count(buoy_game) + return if buoy_game.instance_of?(NilBuoyGame) - # Observer obserers GameResult of a buoy game - # - class BuoyObserver - def update(game_result) - game_name = game_result.game.game_name - unless game_result.instance_of?(GameResultWin) - log_message "#{game_name} was not valid. It will be retried" - return - end - buoy = Buoy.new - buoy_game = buoy.get_game(game_name) buoy_game.decrement_count - if buoy_game.count < 1 - buoy.delete_game buoy_game - log_message "#{game_name} has finished." - else - buoy.update_game buoy_game - log_message "#{game_name} remains #{buoy_game.count} slots." + if buoy_game.count > 0 + update_game buoy_game + log_message "Buoy #{buoy_game.game_name} remains #{buoy_game.count} slots." + else + delete_game buoy_game + log_message "Buoy #{buoy_game.game_name} finished." end end end + end # module ShogiServer