Module: StateGate::Engine::Configurator

Included in:
StateGate::Engine
Defined in:
lib/state_gate/engine/configurator.rb

Overview

Description

Parses the configuration for StateGate::Engine.

The configuration defines the state names, allowed transitions and a number of options to help customise the state-gate to your exact preference.

Options include:

state

Required name for the new state, supplied as a Symbol. The state-gate requires a minimum of two states to be defined.

state :state_name

:transitions_to An optional list of the other state that this state is allowed to change to.

state :state_1, transtions_to: [:state_2, :state_3, :state_4]
state :state_2, transtions_to: :state_4
state :state_3, transtions_to: :any
state :state_4

:human An optional String name to used when displaying gthe state in a view. If no name is specified, it will default to :state.titleized.

state :state_1, transtions_to: [:state_2, :state_3], human: "My State"
default

Optional setting to specify the default state for a new object. The state name is given as a Symbol.

default :state_name
prefix

Optional setting to add a given Symbol before each state name when using Class Scopes. This helps to differential between multiple attributes that have similar state names.

prefix :before  #=> Class.before_active
suffix

Optional setting to add a given Symbol after each state name when using Class Scopes. This helps to differential between multiple attributes that have similar state names.

suffix :after  #=> Class.active_after
make_sequential

Optional setting to automatically add transitions from each state to both the preceeding and following states.

make_sequential

:one_way

Option to restrict the generated transitions to one directtion only: from each
state to the follow state.
  make_sequential :one_way

:loop

Option to add transitions from the last state to the first and, unless +:one_way+
is specified, also from the first state to the last.
  make_sequential :one_way, :loop
no_scopes

Optional setting to disable the generation of Class Scope helpers methods.

no_scopes