class Process::Roulette::Croupier::RestartHandler

The RestartHandler encapsulates the “restart” state of the croupier state machine. It builds a scoreboard of results from the most recent game and sends it to all controllers, and then advances the state machine to the “join” state.

Public Class Methods

new(croupier) click to toggle source
# File lib/process/roulette/croupier/restart_handler.rb, line 12
def initialize(croupier)
  @croupier = croupier
end

Public Instance Methods

_results_for(player) click to toggle source
# File lib/process/roulette/croupier/restart_handler.rb, line 33
def _results_for(player)
  {
    name:      player.username,
    killed_at: player.killed_at,
    killer:    player.victims.last,
    victims:   player.victims
  }
end
_sorted_players() click to toggle source
# File lib/process/roulette/croupier/restart_handler.rb, line 29
def _sorted_players
  @croupier.players.sort_by { |player| -player.victims.length }
end
run() click to toggle source
# File lib/process/roulette/croupier/restart_handler.rb, line 16
def run
  scoreboard = _sorted_players.map do |player|
    _results_for(player)
  end

  @croupier.controllers.each do |controller|
    controller.send_packet('DONE')
    controller.send_packet(scoreboard)
  end

  JoinHandler
end