Class | StateMachine::Callback |
In: |
lib/state_machine/callback.rb
|
Parent: | Object |
Callbacks represent hooks into objects that allow logic to be triggered before or after a specific transition occurs.
bind_to_object | [RW] |
Determines whether to automatically bind the callback to the object being
transitioned. This only applies to callbacks that are defined as lambda
blocks (or Procs). Some integrations, such as DataMapper, handle callbacks
by executing them bound to the object involved, while other integrations,
such as ActiveRecord, pass the object as an argument to the callback. This
can be configured on an application-wide basis by setting this
configuration to true or false. The default value is
false.
Note that the DataMapper and Sequel integrations automatically configure this value on a per-callback basis, so it does not have to be enabled application-wide. ExamplesWhen not bound to the object: class Vehicle state_machine do before_transition do |vehicle| vehicle.set_alarm end end def set_alarm ... end end When bound to the object: StateMachine::Callback.bind_to_object = true class Vehicle state_machine do before_transition do self.set_alarm end end def set_alarm ... end end |
guard | [R] |
The guard that determines whether or not this callback can be invoked based
on the context of the transition. The event, from state, and to state must
all match in order for the guard to pass.
See StateMachine::Guard for more information. |
terminator | [RW] |
The application-wide terminator to use for callbacks when not explicitly
defined. Terminators determine whether to cancel a callback chain based on
the return value of the callback.
See StateMachine::Callback#terminator for more information. |
terminator | [R] |
An optional block for determining whether to cancel the callback chain
based on the return value of the callback. By default, the callback chain
never cancels based on the return value (i.e. there is no implicit
terminator). Certain integrations, such as ActiveRecord and Sequel, change
this default value.
ExamplesCanceling the callback chain without a terminator: class Vehicle state_machine do before_transition do |vehicle| throw :halt end end end Canceling the callback chain with a terminator value of false: class Vehicle state_machine do before_transition do |vehicle| false end end end |
Creates a new callback that can get called based on the configured options.
In addition to the possible configuration options for guards, the following options can be configured:
More information about how those options affect the behavior of the callback can be found in their attribute definitions.
Runs the callback as long as the transition context matches the guard requirements configured for this callback.
If a terminator has been configured and it matches the result from the evaluated method, then the callback chain should be halted.