Sha256: 16fcaff9db01eec255ea4f8c608013f7e17aa153dae5b5b072f91d157b7e62a2
Contents?: true
Size: 777 Bytes
Versions: 2
Compression:
Stored size: 777 Bytes
Contents
module Stateflow class Machine attr_accessor :states, :initial_state, :events def initialize(&machine) @states, @events = Hash.new, Hash.new instance_eval(&machine) end def state_column(name = nil) @state_column ||= name.nil? ? :state : name end private def initial(name) @initial_state_name = name end def state(*names, &options) names.each do |name| state = Stateflow::State.new(name, &options) @initial_state = state if @states.empty? || @initial_state_name == name @states[name.to_sym] = state end end def event(name, &transitions) event = Stateflow::Event.new(name, self, &transitions) @events[name.to_sym] = event end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
stateflow-0.2.1 | lib/stateflow/machine.rb |
stateflow-0.2.0 | lib/stateflow/machine.rb |