[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