[Jifty-commit] r3969 - in Jifty-DBI/trunk: . lib/Jifty/DBI
jifty-commit at lists.jifty.org
jifty-commit at lists.jifty.org
Fri Aug 24 13:02:17 EDT 2007
Author: sterling
Date: Fri Aug 24 13:02:16 2007
New Revision: 3969
Modified:
Jifty-DBI/trunk/ (props changed)
Jifty-DBI/trunk/lib/Jifty/DBI/Record.pm
Jifty-DBI/trunk/t/18triggers.t
Log:
r8945 at riddle: andrew | 2007-08-24 12:01:51 -0500
Adding before_set and after_set triggers and tests for them.
Modified: Jifty-DBI/trunk/lib/Jifty/DBI/Record.pm
==============================================================================
--- Jifty-DBI/trunk/lib/Jifty/DBI/Record.pm (original)
+++ Jifty-DBI/trunk/lib/Jifty/DBI/Record.pm Fri Aug 24 13:02:16 2007
@@ -736,18 +736,37 @@
@_
);
+ # Call the general before_set triggers
+ my $ok = $self->_run_callback(
+ name => "before_set",
+ args => \%args,
+ );
+ return $ok if( not defined $ok);
- my $ok = $self->_run_callback( name => "before_set_" . $args{column},
- args => \%args);
+ # Call the specific before_set_column triggers
+ $ok = $self->_run_callback(
+ name => "before_set_" . $args{column},
+ args => \%args,
+ );
return $ok if( not defined $ok);
$ok = $self->__set(%args);
return $ok if not $ok;
- # Fetch the value back to make sure we have the actual value
- my $value = $self->_value($args{column});
- my $after_set_ret = $self->_run_callback( name => "after_set_" . $args{column}, args =>
- {column => $args{column}, value => $value});
+ # Fetch the value back to make sure we have the actual value
+ my $value = $self->_value($args{column});
+
+ # Call the general after_set triggers
+ $self->_run_callback(
+ name => "after_set_" . $args{column},
+ args => { column => $args{column}, value => $value },
+ );
+
+ # Call the specific after_set_column triggers
+ $self->_run_callback(
+ name => "after_set_" . $args{column},
+ args => { column => $args{column}, value => $value },
+ );
return $ok;
}
Modified: Jifty-DBI/trunk/t/18triggers.t
==============================================================================
--- Jifty-DBI/trunk/t/18triggers.t (original)
+++ Jifty-DBI/trunk/t/18triggers.t Fri Aug 24 13:02:16 2007
@@ -7,7 +7,7 @@
BEGIN { require "t/utils.pl" }
our (@available_drivers);
-use constant TESTS_PER_DRIVER => 40;
+use constant TESTS_PER_DRIVER => 62;
my $total = scalar(@available_drivers) * TESTS_PER_DRIVER;
plan tests => $total;
@@ -74,6 +74,25 @@
is(ref $ret, 'SCALAR', 'arg is a scalar ref');
ok($$ret, 'create was sucessful');
});
+ $self->add_trigger(before_set => sub {
+ my $self = shift;
+ my $arg = shift;
+ isa_ok($self, 'TestApp::Address');
+ is(ref $arg, 'HASH', 'arg is a hash');
+ is(scalar(keys %$arg), 3, 'hash has 2 keys');
+ ok($arg->{column}, "column arg is set");
+ ok($arg->{value}, "value arg set");
+ is($arg->{is_sql_function}, undef, 'is_sql_function is undef');
+ });
+ $self->add_trigger(after_set => sub {
+ my $self = shift;
+ my $arg = shift;
+ isa_ok($self, 'TestApp::Address');
+ is(ref $arg, 'HASH', 'arg is a hash');
+ is(scalar(keys %$arg), 2, 'hash has 2 keys');
+ ok($arg->{column}, "column arg is set");
+ ok($arg->{value}, "value arg is set");
+ });
$self->add_trigger(before_delete => sub {
my $self = shift;
isa_ok($self, 'TestApp::Address');
More information about the Jifty-commit
mailing list