Sha256: d88f171957ec13315bb0fb13188ca9136cddb084d61ca53d40db0c3d75a93529
Contents?: true
Size: 688 Bytes
Versions: 36
Compression:
Stored size: 688 Bytes
Contents
require 'ostruct' 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, :config attr_reader :name def initialize(name) @name = name @initial_state = nil @states = [] @events = {} @config = OpenStruct.new end def clone klone = super klone.states = states.clone klone end def create_state(name, options) @states << AASM::SupportingClasses::State.new(name, options) unless @states.include?(name) end end end
Version data entries
36 entries across 36 versions & 20 rubygems