Sha256: 0f2a7b389b10db4940028309fa6eb77c467806b70ce7d17a2f6d5cb3c0bd5610
Contents?: true
Size: 919 Bytes
Versions: 1
Compression:
Stored size: 919 Bytes
Contents
module Multiflow class Machine attr_accessor :states, :initial_state, :events def initialize(&machine) @states, @events, @create_scopes = Hash.new, Hash.new, true instance_eval(&machine) end def state_column(name = :state) @state_column ||= name end def create_scopes(bool = false) @create_scopes = bool end def create_scopes? @create_scopes end private def initial(name) @initial_state_name = name end def state(*names, &options) names.each do |name| state = Multiflow::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 = Multiflow::Event.new(name, self, &transitions) @events[name.to_sym] = event end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
multiflow-1.0.0 | lib/multiflow/machine.rb |