class Celluloid::FSM::State - celluloid-0.16.0 Documentation

# class Celluloid::FSM::State

FSM states as declared by Celluloid::FSM#state

### Attributes

name[R]
transitions[R]

### Public Class Methods

new(name, transitions = nil, &block) click to toggle source

    # File lib/celluloid/fsm.rb, line 168
    def initialize(name, transitions = nil, &block)
      @name, @block = name, block
      @transitions = nil
      @transitions = Array(transitions).map { |t| t.to_sym } if transitions
    end

### Public Instance Methods

call(obj) click to toggle source

    # File lib/celluloid/fsm.rb, line 174
    def call(obj)
      obj.instance_eval(&@block) if @block
    end

valid_transition?(new_state) click to toggle source

    # File lib/celluloid/fsm.rb, line 178
    def valid_transition?(new_state)
      # All transitions are allowed unless expressly
      return true unless @transitions

      @transitions.include? new_state.to_sym
    end