Sha256: b07f613cd11bfefbedffd0da95ccf74aded811037bcb3f07af8af4fffbe24a3d
Contents?: true
Size: 891 Bytes
Versions: 4
Compression:
Stored size: 891 Bytes
Contents
$LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib')) require 'state_pattern' def wait(seconds) seconds.downto(1) do |i| print " #{i}" $stdout.flush sleep 1 end end class Stop < StatePattern::State def next wait 3 transition_to(Go) end def color "Red" end end class Go < StatePattern::State def next wait 2 transition_to(Caution) end def color "Green" end end class Caution < StatePattern::State def next wait 1 transition_to(Stop) end def color "Amber" end end class TrafficSemaphore include StatePattern set_initial_state Stop end semaphore = TrafficSemaphore.new loop do print semaphore.color semaphore.next puts end
Version data entries
4 entries across 4 versions & 1 rubygems
Version | Path |
---|---|
state_pattern-2.0.2 | ./examples/semaphore.rb |
state_pattern-2.0.1 | ./examples/semaphore.rb |
state_pattern-2.0.0 | ./examples/semaphore.rb |
state_pattern-1.3.0 | ./examples/semaphore.rb |