[Jifty-commit] r6254 - in jifty/trunk: t/TestApp-Plugin-ActorMetadata/lib/TestApp/Plugin/ActorMetadata t/TestApp-Plugin-ActorMetadata/lib/TestApp/Plugin/ActorMetadata/Model t/TestApp-Plugin-ActorMetadata/t

Jifty commits jifty-commit at lists.jifty.org
Sat Jan 17 11:52:51 EST 2009


Author: clkao
Date: Sat Jan 17 11:52:51 2009
New Revision: 6254

Added:
   jifty/trunk/t/TestApp-Plugin-ActorMetadata/lib/TestApp/Plugin/ActorMetadata/Model/Evil.pm
   jifty/trunk/t/TestApp-Plugin-ActorMetadata/lib/TestApp/Plugin/ActorMetadata/MyMixin.pm
   jifty/trunk/t/TestApp-Plugin-ActorMetadata/t/mixin.t
Modified:
   jifty/trunk/lib/Jifty/Plugin/ActorMetadata/Mixin/Model/ActorMetadata.pm

Log:
Plugin import must not call ->columns which causes incorrect caching.

Modified: jifty/trunk/lib/Jifty/Plugin/ActorMetadata/Mixin/Model/ActorMetadata.pm
==============================================================================
--- jifty/trunk/lib/Jifty/Plugin/ActorMetadata/Mixin/Model/ActorMetadata.pm	(original)
+++ jifty/trunk/lib/Jifty/Plugin/ActorMetadata/Mixin/Model/ActorMetadata.pm	Sat Jan 17 11:52:51 2009
@@ -78,6 +78,7 @@
 sub register_triggers_for_column {
     my $self   = shift;
     my $column = shift;
+
     return
       unless $column_names{ ref $self || $self }{'updated_on'}
           && $column eq $column_names{ ref $self || $self }{'updated_on'}
@@ -258,7 +259,7 @@
     }
 
     if (my $triggers_for_column =  $self->can('register_triggers_for_column') ) {
-        for my $column (map { $_->name } $caller->columns) {
+        for my $column (keys %{$caller->_columns_hashref}) {
             $triggers_for_column->($caller, $column)
         }
     }

Added: jifty/trunk/t/TestApp-Plugin-ActorMetadata/lib/TestApp/Plugin/ActorMetadata/Model/Evil.pm
==============================================================================
--- (empty file)
+++ jifty/trunk/t/TestApp-Plugin-ActorMetadata/lib/TestApp/Plugin/ActorMetadata/Model/Evil.pm	Sat Jan 17 11:52:51 2009
@@ -0,0 +1,16 @@
+use strict;
+use warnings;
+
+package TestApp::Plugin::ActorMetadata::Model::Evil;
+use Jifty::DBI::Schema;
+
+use TestApp::Plugin::ActorMetadata::Record schema {
+
+};
+
+use Jifty::Plugin::ActorMetadata::Mixin::Model::ActorMetadata;
+use TestApp::Plugin::ActorMetadata::MyMixin;
+# Your model-specific methods go here.
+
+1;
+

Added: jifty/trunk/t/TestApp-Plugin-ActorMetadata/lib/TestApp/Plugin/ActorMetadata/MyMixin.pm
==============================================================================
--- (empty file)
+++ jifty/trunk/t/TestApp-Plugin-ActorMetadata/lib/TestApp/Plugin/ActorMetadata/MyMixin.pm	Sat Jan 17 11:52:51 2009
@@ -0,0 +1,15 @@
+package TestApp::Plugin::ActorMetadata::MyMixin;
+
+use base 'Jifty::DBI::Record::Plugin';
+use Jifty::DBI::Schema;
+
+
+use Jifty::Plugin::User::Record schema {
+
+column
+  my_mixin_hello => type is 'varchar';
+
+};
+
+1;
+

Added: jifty/trunk/t/TestApp-Plugin-ActorMetadata/t/mixin.t
==============================================================================
--- (empty file)
+++ jifty/trunk/t/TestApp-Plugin-ActorMetadata/t/mixin.t	Sat Jan 17 11:52:51 2009
@@ -0,0 +1,11 @@
+use strict;
+use warnings;
+
+# test the actormetadata model mixin works well with model which has other mixins.
+
+use Test::More tests => 1;
+use Jifty::Test::Dist;
+
+is_deeply(
+[sort map { $_->name } TestApp::Plugin::ActorMetadata::Model::Evil->columns],
+[qw(created_by created_on id my_mixin_hello updated_by updated_on)]);


More information about the Jifty-commit mailing list