X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FDBIx%2FClass%2FSerialize.pm;h=345b99c13252280af56b6e149e16300b3f5736b8;hb=1ea77c14536dea3f5e4d5fe6d75ff5d926a27935;hp=0db517613f421497b863dc42d518b3d4492c6179;hpb=c5b7d79941cd6942aeec1e81e1d4f7f9ad7eb62f;p=dbsrgits%2FDBIx-Class.git diff --git a/lib/DBIx/Class/Serialize.pm b/lib/DBIx/Class/Serialize.pm index 0db5176..345b99c 100644 --- a/lib/DBIx/Class/Serialize.pm +++ b/lib/DBIx/Class/Serialize.pm @@ -4,7 +4,7 @@ use Storable qw/freeze thaw/; sub STORABLE_freeze { my ($self,$cloning) = @_; - return if $cloning; + #return if $cloning; my $to_serialize = { %$self }; delete $to_serialize->{result_source}; return (freeze($to_serialize)); @@ -14,10 +14,37 @@ sub STORABLE_thaw { my ($self,$cloning,$serialized) = @_; %$self = %{ thaw($serialized) }; $self->result_source($self->result_source_instance); -# no strict 'refs'; -# my $class = ${(ref $self) . '::ISA'}[0]; -# my $schema = $self->result_source_instance->schema; -# $self->result_source($schema->source($class)); } -1; \ No newline at end of file +1; + +__END__ + +=head1 NAME + + DBIx::Class::Serialize - hooks for Storable freeze/thaw (EXPERIMENTAL) + +=head1 SYNOPSIS + + # in a table class definition + __PACKAGE__->load_components(qw/Serialize/); + + # meanwhile, in a nearby piece of code + my $obj = $schema->resultset('Foo')->find(12); + $cache->set($obj->ID, $obj); # if the cache uses Storable, this will work automatically + +=head1 DESCRIPTION + +This component adds hooks for Storable so that row objects can be serialized. It assumes that +your row object class (C) is the same as your table class, which is the normal +situation. However, this code is not yet well tested, and so should be considered experimental. + +=head1 AUTHORS + +David Kamholz + +=head1 LICENSE + +You may distribute this code under the same terms as Perl itself. + +=cut