mirror of
https://github.com/aasm/aasm
synced 2023-03-27 23:22:41 -04:00
26 lines
540 B
Ruby
26 lines
540 B
Ruby
module AASM
|
|
class StateMachine
|
|
def self.[](*args)
|
|
(@machines ||= {})[args]
|
|
end
|
|
|
|
def self.[]=(*args)
|
|
val = args.pop
|
|
(@machines ||= {})[args] = val
|
|
end
|
|
|
|
attr_accessor :states, :events, :initial_state
|
|
attr_reader :name
|
|
|
|
def initialize(name)
|
|
@name = name
|
|
@initial_state = nil
|
|
@states = []
|
|
@events = {}
|
|
end
|
|
|
|
def create_state(name, options)
|
|
@states << AASM::SupportingClasses::State.new(name, options) unless @states.include?(name)
|
|
end
|
|
end
|
|
end
|