[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