Sha256: 7e7a405d8a6cc5b62566ea28bee9b6cf976a45065e362533ee4fe5933ce46971
Contents?: true
Size: 728 Bytes
Versions: 14
Compression:
Stored size: 728 Bytes
Contents
class TrafficLight state_machine initial: :stop do event :cycle do transition stop: :proceed, proceed: :caution, caution: :stop end state :stop do def color(transform) value = 'red' if block_given? yield value else value.send(transform) end value end end state all - :proceed do def capture_violations? true end end state :proceed do def color(_transform) 'green' end def capture_violations? false end end state :caution do def color(_transform) 'yellow' end end end def color(transform = :to_s) super end end
Version data entries
14 entries across 14 versions & 2 rubygems