[Jifty-commit] r6144 - in Net-Jifty/branches/classbuilder: .

Jifty commits jifty-commit at lists.jifty.org
Wed Dec 17 00:23:56 EST 2008


Author: sartak
Date: Wed Dec 17 00:23:56 2008
New Revision: 6144

Modified:
   Net-Jifty/branches/classbuilder/   (props changed)
   Net-Jifty/branches/classbuilder/lib/Net/Jifty/Meta/Instance.pm

Log:
 r77647 at onn:  sartak | 2008-12-17 00:23:53 -0500
 First stab at get_slot_value


Modified: Net-Jifty/branches/classbuilder/lib/Net/Jifty/Meta/Instance.pm
==============================================================================
--- Net-Jifty/branches/classbuilder/lib/Net/Jifty/Meta/Instance.pm	(original)
+++ Net-Jifty/branches/classbuilder/lib/Net/Jifty/Meta/Instance.pm	Wed Dec 17 00:23:56 2008
@@ -2,7 +2,24 @@
 use Moose;
 extends 'Moose::Meta::Instance';
 
+around get_slot_value => {
+    my $orig = shift;
+    my ($self, $instance, $slot_name) = @_;
 
+    my $value = $orig->(@_);
+    return $value if defined($value);
+
+    # have we already asked the server for this record?
+    if (!exists($instance->{__net_jifty_cache})) {
+        # ask the server
+        $instance->{__net_jifty_cache} = $connection->read(
+            $self->associated_metaclass->model_name,
+            id => $instance->id,
+        );
+    }
+
+    return $instance->{$slot_name} = delete $instance->{__net_jifty_cache};
+};
 
 __PACKAGE__->meta->make_immutable;
 no Moose;


More information about the Jifty-commit mailing list