Class::Workflow::Transition::Deterministic - A transition which knows which
state it leads to.
package MyTransition;
use Moose;
with qw/
Class::Workflow::Transition
Class::Workflow::Deterministic
/;
sub apply_body { # instead of 'sub apply'
# body
}
# this may be changed to the following form in the future:
augment apply => sub {
# body
};
This role provides a base role for transitions which know their target state.
It overrides "apply" with a
default implementation that will derive an instance for you, setting
"state" automatically, appending the
return value from "apply_body" to that
list.
You should consume this role unless you need to determine the
target state dynamically (probably not a good idea).
- to_state
- The target state of the transition. Should do Class::Workflow::State.
- apply
- In scalar context returns the derived instance, in list caller also
returns the remaining return value from
"apply_body".
- apply_body
- The "inner" body of the function.
This method is always evaluated in list context, and is
expected to return a hash reference of overridden fields as the first
value in that list.
In the future instead of defining
"apply_body" you will do:
augment apply => sub {
# body
};
And this role's "apply" will
really use "inner()".