[Jifty-commit] jifty-dbi branch, master, updated. 0.64-10-g329b0e8
Jifty commits
jifty-commit at lists.jifty.org
Thu Feb 10 15:26:43 EST 2011
The branch, master has been updated
via 329b0e8bc27354d2bd957ecb71298598a746913a (commit)
from a908e1d35b508f48018d22ed3a9341bb2d3aaf44 (commit)
Summary of changes:
lib/Jifty/DBI/Record.pm | 7 +++++--
t/18triggers.t | 12 +++++++-----
2 files changed, 12 insertions(+), 7 deletions(-)
- Log -----------------------------------------------------------------
commit 329b0e8bc27354d2bd957ecb71298598a746913a
Author: Shawn M Moore <sartak at bestpractical.com>
Date: Thu Feb 10 15:26:27 2011 -0500
Pass old_value to triggers on column update
diff --git a/lib/Jifty/DBI/Record.pm b/lib/Jifty/DBI/Record.pm
index 22e8404..a840281 100755
--- a/lib/Jifty/DBI/Record.pm
+++ b/lib/Jifty/DBI/Record.pm
@@ -913,6 +913,9 @@ sub _set {
);
return $ok if ( not defined $ok );
+ # Fetch the old value for the benefit of the triggers
+ my $old_value = $self->_value( $args{column} );
+
$ok = $self->__set(%args);
return $ok if not $ok;
@@ -922,13 +925,13 @@ sub _set {
# Call the general after_set triggers
$self->_run_callback(
name => "after_set",
- args => { column => $args{column}, value => $value },
+ args => { column => $args{column}, value => $value, old_value => $old_value },
);
# Call the specific after_set_column triggers
$self->_run_callback(
name => "after_set_" . $args{column},
- args => { column => $args{column}, value => $value },
+ args => { column => $args{column}, value => $value, old_value => $old_value },
);
return $ok;
diff --git a/t/18triggers.t b/t/18triggers.t
index 779b3e2..32517ba 100644
--- a/t/18triggers.t
+++ b/t/18triggers.t
@@ -7,7 +7,7 @@ use Test::More;
BEGIN { require "t/utils.pl" }
our (@available_drivers);
-use constant TESTS_PER_DRIVER => 62;
+use constant TESTS_PER_DRIVER => 66;
my $total = scalar(@available_drivers) * TESTS_PER_DRIVER;
plan tests => $total;
@@ -90,9 +90,10 @@ sub register_triggers {
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');
+ is(scalar(keys %$arg), 3, 'hash has 3 keys');
ok($arg->{column}, "column arg is set");
ok($arg->{value}, "value arg is set");
+ ok($arg->{old_value}, "old_value arg is set");
});
$self->add_trigger(before_delete => sub {
my $self = shift;
@@ -111,8 +112,8 @@ sub register_triggers_for_column {
my $self = shift;
my $column = shift;
- my $value = $column eq 'name' ? 'zostay'
- : '098 765 4321';
+ my $old_value = $column eq 'name' ? 'Sterling' : '123 456 7890';
+ my $value = $column eq 'name' ? 'zostay' : '098 765 4321';
$self->add_trigger('before_set_'.$column => sub {
my $self = shift;
@@ -129,9 +130,10 @@ sub register_triggers_for_column {
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');
+ is(scalar(keys %$arg), 3, 'hash has 3 keys');
is($arg->{column}, $column, "column arg is $column");
is($arg->{value}, $value, "value arg is $value");
+ is($arg->{old_value}, $old_value, "old_value arg is $old_value");
});
}
-----------------------------------------------------------------------
More information about the Jifty-commit
mailing list