[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