Justin Hunter > Class-Workflow > Class::Workflow::State::AutoApply

Download:
Class-Workflow-0.11_01.tar.gz

Dependencies

Annotate this POD

CPAN RT

Open  0
View/Report Bugs
Source  

NAME ^

Class::Workflow::State::AutoApply - Automatically apply a transition upon arriving into a state.

SYNOPSIS ^

        package MyState;
        use Moose;

        with qw/Class::Workflow::State::AutoApply/;
        
        my $state = Mystate->new( auto_transition => $t );

        my $i2 = $state->accept_instance( $i, @args ); # automatically calls $t->apply( $i, @args )

DESCRIPTION ^

This state role is used to automatically apply a transition

PARTIAL TRANSITIONS ^

If an auto-application may fail validation or something of the sort you can do something like:

        around apply_auto_transition => sub {
                my $next = shift;
                my ( $self, $instance, @args ) = @_;

                eval { $self->$next( $instance, @args ) }

                die $@ unless $@->isa("SoftError");
        }

If apply_auto_transition returns a false value then the original instance will be returned automatically, at which point the intermediate state is the current state.

syntax highlighting: