Sha256: 3ef049fae80d78495f21208d84b71b6b197b2ce759007e9530f6e6714e99f1fb

Contents?: true

Size: 629 Bytes

Versions: 6

Compression:

Stored size: 629 Bytes

Contents

class AASM::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.events = events.clone
    klone
  end

  def create_state(name, options)
    @states << AASM::SupportingClasses::State.new(name, options) unless @states.include?(name)
  end
end

Version data entries

6 entries across 6 versions & 4 rubygems

Version Path
aasm-2.2.0 lib/aasm/state_machine.rb
mylescarrick-aasm-2.1.5 lib/aasm/state_machine.rb
fcoury-aasm-2.1.5 lib/aasm/state_machine.rb
r38y-aasm-2.1.5 lib/aasm/state_machine.rb
aasm-2.1.5 lib/aasm/state_machine.rb
aasm-2.1.4 lib/aasm/state_machine.rb