[Jifty-commit] r3431 - Jifty-DBI/trunk/lib/Jifty/DBI/Class
jifty-commit at lists.jifty.org
jifty-commit at lists.jifty.org
Sun Jun 10 20:46:42 EDT 2007
Author: clkao
Date: Sun Jun 10 20:46:42 2007
New Revision: 3431
Modified:
Jifty-DBI/trunk/lib/Jifty/DBI/Class/Trigger.pm
Log:
revert last two commits which breaks adding multiple triggers in one call.
Modified: Jifty-DBI/trunk/lib/Jifty/DBI/Class/Trigger.pm
==============================================================================
--- Jifty-DBI/trunk/lib/Jifty/DBI/Class/Trigger.pm (original)
+++ Jifty-DBI/trunk/lib/Jifty/DBI/Class/Trigger.pm Sun Jun 10 20:46:42 2007
@@ -25,18 +25,28 @@
my $triggers = __fetch_triggers($proto);
- if ( $#_ == 1 && ref( $_[1] ) eq 'CODE' ) {
- @_ = ( name => $_[0], callback => $_[1] );
+ if (ref($_[1]) eq 'CODE') {
+
+ while (my($when, $code) = splice @_, 0, 2) {
+ __validate_triggerpoint($proto, $when);
+ Carp::croak('add_trigger() needs coderef') unless ref($code) eq 'CODE';
+ push @{$triggers->{$when}}, [$code, undef];
+ }
}
+ elsif (grep {'name'} @_) {
+ my %args = ( name => undef, callback => undef, abortable => undef, @_);
+ my $when= $args{'name'};
+ my $code = $args{'callback'};
+ my $abortable = $args{'abortable'};
+ __validate_triggerpoint($proto, $when);
+ Carp::croak('add_trigger() needs coderef') unless ref($code) eq 'CODE';
+ push @{$triggers->{$when}}, [$code, $abortable];
+
- my %args = ( name => undef, callback => undef, abortable => undef, @_ );
- my $when = $args{'name'};
- my $code = $args{'callback'};
- my $abortable = $args{'abortable'};
- __validate_triggerpoint( $proto, $when );
- Carp::croak('add_trigger() needs coderef') unless ref($code) eq 'CODE';
- push @{ $triggers->{$when} }, [ $code, $abortable ];
+ } else {
+ Carp::croak('add_trigger() needs coderef');
+ }
1;
}
@@ -62,7 +72,8 @@
my @return = $trig->[0]->($self, @_);
push @{$result_store->{'_class_trigger_results'}}, \@return;
return undef if ($trig->[1] and not $return[0]); # only abort on false values.
- }
+
+ }
}
else {
# if validation is enabled we can only add valid trigger points
More information about the Jifty-commit
mailing list