Class::Workflow::State::AutoApply - Automatically apply a transition upon


Class-Workflow documentation  | view source Contained in the Class-Workflow distribution.

Index


NAME

Top

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

SYNOPSIS

Top

	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

Top

This state role is used to automatically apply a transition

PARTIAL TRANSITIONS

Top

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.


Class-Workflow documentation  | view source Contained in the Class-Workflow distribution.