[Jifty-commit] r5415 - in Net-Jifty: .

Jifty commits jifty-commit at lists.jifty.org
Wed May 7 23:45:11 EDT 2008


Author: sartak
Date: Wed May  7 23:45:11 2008
New Revision: 5415

Modified:
   Net-Jifty/   (props changed)
   Net-Jifty/lib/Net/Jifty.pm

Log:
 r55414 at onn:  sartak | 2008-05-07 23:45:07 -0400
 First stab at delay-loading refers_to columns. Not quite there yet though


Modified: Net-Jifty/lib/Net/Jifty.pm
==============================================================================
--- Net-Jifty/lib/Net/Jifty.pm	(original)
+++ Net-Jifty/lib/Net/Jifty.pm	Wed May  7 23:45:11 2008
@@ -1023,6 +1023,24 @@
         $opts{isa} = $self->_moosify_type($spec->{type});
         delete $opts{isa} if !defined($opts{isa});
 
+        $opts{required} = $spec->{mandatory};
+
+        if ($spec->{refers_to}) {
+            $spec->{by} ||= 'id';
+
+            $opts{lazy} = 1;
+            $opts{isa} = $spec->{refers_to};
+
+            my ($refer_class, $refer_column) = ($opts{isa}, $spec->{by});
+            $opts{default} = sub {
+                my $self  = shift;
+                my $class = $self->_interface->create_model_class($refer_class);
+                my $attr  = $self->meta->get_attribute($column);
+                my $value = $attr->get_read_method_ref->($self);
+                $class->load($self->_interface, $refer_column, $value);
+            };
+        }
+
         push @attributes, Moose::Meta::Attribute->new($column, %opts);
     }
 


More information about the Jifty-commit mailing list