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

Jifty commits jifty-commit at lists.jifty.org
Tue Dec 16 23:32:18 EST 2008


Author: sartak
Date: Tue Dec 16 23:32:18 2008
New Revision: 6132

Added:
   Net-Jifty/branches/classbuilder/lib/Net/Jifty/
   Net-Jifty/branches/classbuilder/lib/Net/Jifty/Record.pm
Modified:
   Net-Jifty/branches/classbuilder/   (props changed)
   Net-Jifty/branches/classbuilder/Makefile.PL

Log:
 r77623 at onn:  sartak | 2008-12-16 23:32:14 -0500
 Begin a Net::Jifty::Record, base class for all these wonderful things


Modified: Net-Jifty/branches/classbuilder/Makefile.PL
==============================================================================
--- Net-Jifty/branches/classbuilder/Makefile.PL	(original)
+++ Net-Jifty/branches/classbuilder/Makefile.PL	Tue Dec 16 23:32:18 2008
@@ -3,13 +3,15 @@
 name            'Net-Jifty';
 all_from        'lib/Net/Jifty.pm';
 
-requires        'Moose' => '0.50';
-requires        'LWP::UserAgent';
-requires        'YAML';
-requires        'URI';
+requires 'Moose' => '0.50';
+requires 'MooseX::AttributeHelpers';
 
-build_requires  'Test::More';
-build_requires  'Test::MockObject';
+requires 'LWP::UserAgent';
+requires 'YAML';
+requires 'URI';
+
+build_requires 'Test::More';
+build_requires 'Test::MockObject';
 
 features(
     'Date loading' => [

Added: Net-Jifty/branches/classbuilder/lib/Net/Jifty/Record.pm
==============================================================================
--- (empty file)
+++ Net-Jifty/branches/classbuilder/lib/Net/Jifty/Record.pm	Tue Dec 16 23:32:18 2008
@@ -0,0 +1,41 @@
+package Net::Jifty::Record;
+use Moose;
+use MooseX::AttributeHelpers;
+
+has auto_update => (
+    is      => 'rw',
+    isa     => 'Bool',
+    default => 1,
+);
+
+has _changes => (
+    metaclass => 'Collection::Array',
+    is        => 'rw',
+    isa       => 'ArrayRef',
+    default   => sub { [] },
+    provides  => {
+        push   => 'add_change',
+        size   => 'has_changes',
+        splice => 'clear_changes',
+    },
+);
+
+sub update {
+    my $self = shift;
+    return unless $self->has_changes;
+    my @changes = $self->clear_changes;
+    for my $change (@changes) {
+        $self->send_change($change);
+    }
+}
+
+sub DEMOLISH {
+    my $self = shift;
+    $self->update if $self->has_changes;
+}
+
+__PACKAGE__->meta->make_immutable;
+no Moose;
+
+1;
+


More information about the Jifty-commit mailing list