Module: LiarsDice::Watcher

Included in:
CommandLineWatcher, Engine
Defined in:
lib/liars_dice/watcher.rb

Instance Method Summary collapse

Instance Method Details

#after_bid(callback) ⇒ Object



4
5
6
# File 'lib/liars_dice/watcher.rb', line 4

def after_bid(callback)
  append_callback(:after_bid, callback)
end

#after_bs(callback) ⇒ Object



12
13
14
# File 'lib/liars_dice/watcher.rb', line 12

def after_bs(callback)
  append_callback(:after_bs, callback)
end

#after_dice_rolled(callback) ⇒ Object



20
21
22
# File 'lib/liars_dice/watcher.rb', line 20

def after_dice_rolled(callback)
  append_callback(:after_dice_rolled, callback)
end

#after_game(callback) ⇒ Object



16
17
18
# File 'lib/liars_dice/watcher.rb', line 16

def after_game(callback)
  append_callback(:after_game, callback)
end

#after_invalid_bid(callback) ⇒ Object



28
29
30
# File 'lib/liars_dice/watcher.rb', line 28

def after_invalid_bid(callback)
  append_callback(:after_invalid_bid, callback)
end

#after_round(callback) ⇒ Object



8
9
10
# File 'lib/liars_dice/watcher.rb', line 8

def after_round(callback)
  append_callback(:after_round, callback)
end

#after_seats_assigned(callback) ⇒ Object



24
25
26
# File 'lib/liars_dice/watcher.rb', line 24

def after_seats_assigned(callback)
  append_callback(:after_seats_assigned, callback)
end

#handle_event(event) ⇒ Object



32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
# File 'lib/liars_dice/watcher.rb', line 32

def handle_event(event)
  if event.is_a? BidMadeEvent
    fire(:after_bid, event.seat_number, event.bid)
  elsif event.is_a? BSCalledEvent
    fire(:after_bs, event.seat_number)
  elsif event.is_a? LoserEvent
    fire(:after_round, event.seat_number)
  elsif event.is_a? WinnerEvent
    fire(:after_game, event.seat_number)
  elsif event.is_a? DiceRolledEvent
    fire(:after_dice_rolled, event.dice)
  elsif event.is_a? SeatsAssignedEvent
    fire(:after_seats_assigned, event.seat_assignments)
  elsif event.is_a? InvalidBidEvent
    fire(:after_invalid_bid, event.seat_number)
  end
end