[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