module Celluloid::FSM::ClassMethods - celluloid-0.16.0 Documentation

# module Celluloid::FSM::ClassMethods

### Public Instance Methods

default_state(new_default = nil) click to toggle source

Obtain or set the default state Passing a state name sets the default state

    # File lib/celluloid/fsm.rb, line 28
    def default_state(new_default = nil)
      if new_default
        @default_state = new_default.to_sym
      else
        defined?(@default_state) ? @default_state : DEFAULT_STATE
      end
    end

state(*args, &block) click to toggle source

Declare an FSM state and optionally provide a callback block to fire Options:

- to: a state or array of states this state can transition to

    # File lib/celluloid/fsm.rb, line 44
    def state(*args, &block)
      if args.last.is_a? Hash
        # Stringify keys :/
        options = args.pop.inject({}) { |h,(k,v)| h[k.to_s] = v; h }
      else
        options = {}
      end

      args.each do |name|
        name = name.to_sym
        default_state name if options['default']
        states[name] = State.new(name, options['to'], &block)
      end
    end

states() click to toggle source

Obtain the valid states for this FSM

    # File lib/celluloid/fsm.rb, line 37
    def states
      @states ||= {}
    end