Handel
view release on metacpan or search on metacpan
lib/Handel/Checkout.pm view on Meta::CPAN
if (ref $_ eq $package) {
if ($preference) {
if (exists $self->{'handlers'}->{$phase}->{$preference}) {
my $plugin = $self->{'handlers'}->{$phase}->{$preference}->[0];
throw Handel::Exception::Checkout( -details =>
translate('HANDLER_EXISTS_IN_PHASE', $phase, $preference, $plugin)
);
};
} else {
my @prefs = sort {$a <=> $b} keys %{$self->{'handlers'}->{$phase}};
$preference = scalar @prefs ? $#prefs++ : 101;
};
$self->{'handlers'}->{$phase}->{$preference} = [$_, $ref];
last;
};
};
return;
};
sub add_message {
lib/Handel/Checkout.pm view on Meta::CPAN
) unless $self->order; ## no critic
$self->_setup;
{
$self->order->result->txn_begin;
foreach my $phase (@{$phases}) {
next unless $phase;
my @handlerprefs = sort {$a <=> $b} keys %{$self->{'handlers'}->{$phase}};
foreach my $handlerpref (@handlerprefs) {
my $handler = $self->{'handlers'}->{$phase}->{$handlerpref};
my $status = $handler->[1]->($handler->[0], $self);
if ($status != CHECKOUT_HANDLER_OK && $status != CHECKOUT_HANDLER_DECLINE) {
$self->_teardown($self);
try {
$self->order->result->txn_rollback;
$self->order->result->discard_changes;
foreach my $item ($self->order->items->all) {
( run in 2.169 seconds using v1.01-cache-2.11-cpan-0bb4e1dffa6 )