[Jifty-commit] r3594 - in jifty/branches/virtual-models: lib/Jifty

jifty-commit at lists.jifty.org jifty-commit at lists.jifty.org
Sun Jul 1 23:56:48 EDT 2007


Author: sterling
Date: Sun Jul  1 23:56:48 2007
New Revision: 3594

Modified:
   jifty/branches/virtual-models/   (props changed)
   jifty/branches/virtual-models/lib/Jifty/ClassLoader.pm

Log:
 r7913 at dynpc145:  andrew | 2007-07-01 21:12:44 -0500
 Make ClassLoader more like trunk and fix the problem (albeit inefficiently) to the t/TestApp-Plugin-REST/02-basic-use.t test failure by eliminating duplicate models being added to the models accessor.


Modified: jifty/branches/virtual-models/lib/Jifty/ClassLoader.pm
==============================================================================
--- jifty/branches/virtual-models/lib/Jifty/ClassLoader.pm	(original)
+++ jifty/branches/virtual-models/lib/Jifty/ClassLoader.pm	Sun Jul  1 23:56:48 2007
@@ -251,9 +251,9 @@
         except  => qr/\.#/,
         inner   => 0
     );
-    # That plugins is module::pluggable, not jdbi
     $models{$_} = 1 for grep {/^($base)::Model::(.*)$/ and not /Collection$/} $self->plugins;
-    for my $full (sort keys %models) {
+    $self->models(sort keys %models);
+    for my $full ($self->models) {
         $self->_require_model_related_classes($full);
     }
 
@@ -262,7 +262,10 @@
 sub _require_model_related_classes {
     my $self = shift;
     my $full = shift;
-    push( @{ $self->models }, $full );
+
+    # XXX TODO FIXME grep isn't a very efficient solution here -- sterling
+    my $models = $self->models;
+    push( @$models, $full ) unless grep { $_ eq $full } @$models;
 
     my $base = $self->{base};
 
@@ -329,11 +332,10 @@
 
 sub models {
     my $self = shift;
-    $self->{models} ||= [];
     if (@_) {
         $self->{models} = ref($_[0]) ? $_[0] : \@_;
     }
-    wantarray ? @{ $self->{models} } : $self->{models};
+    wantarray ? @{ $self->{models} ||= [] } : $self->{models};
 }
 
 =head2 DESTROY


More information about the Jifty-commit mailing list