[Jifty-commit] r5407 - in Net-Jifty: . lib/Net/Jifty
Jifty commits
jifty-commit at lists.jifty.org
Wed May 7 21:34:59 EDT 2008
Author: sartak
Date: Wed May 7 21:34:59 2008
New Revision: 5407
Modified:
Net-Jifty/ (props changed)
Net-Jifty/lib/Net/Jifty.pm
Net-Jifty/lib/Net/Jifty/Record.pm
Log:
r55339 at onn: sartak | 2008-05-07 21:34:56 -0400
Triggers don't work because they run on ->new, so instead add "after" method modifiers
Modified: Net-Jifty/lib/Net/Jifty.pm
==============================================================================
--- Net-Jifty/lib/Net/Jifty.pm (original)
+++ Net-Jifty/lib/Net/Jifty.pm Wed May 7 21:34:59 2008
@@ -973,6 +973,20 @@
attributes => \@attributes,
);
+ for my $attribute (@attributes) {
+ next unless $attribute->has_writer;
+
+ my $name = $attribute->name;
+ my $reader = $attribute->get_read_method;
+ my $writer = $attribute->get_write_method;
+
+ $meta->add_after_method($writer => sub {
+ my $self = shift;
+ return if @_ == 0; # read
+ $self->update($name, $self->$reader);
+ });
+ }
+
$meta->add_attribute('+_model_class',
default => $last,
);
@@ -996,14 +1010,6 @@
$opts{isa} = $self->_moosify_type($spec->{type});
delete $opts{isa} if !defined($opts{isa});
- # on set, update the value of this record's column on the server
- if ($spec->{writable}) {
- $opts{trigger} = sub {
- my ($self, $new_value, $attribute) = @_;
- $self->update($attribute->name => $new_value);
- };
- }
-
push @attributes, Moose::Meta::Attribute->new($column, %opts);
}
Modified: Net-Jifty/lib/Net/Jifty/Record.pm
==============================================================================
--- Net-Jifty/lib/Net/Jifty/Record.pm (original)
+++ Net-Jifty/lib/Net/Jifty/Record.pm Wed May 7 21:34:59 2008
@@ -86,10 +86,12 @@
delete $hash->{$_} if !defined($hash->{$_});
}
- return $class->new(
+ my $record = $class->new(
_interface => $interface,
%$hash,
);
+
+ return $record;
}
sub _default_model_class { shift->meta->get_attribute('_model_class')->default }
More information about the Jifty-commit
mailing list