1 package DBIx::Class::Serialize::Storable;
6 my ($self,$cloning) = @_;
7 my $to_serialize = { %$self };
8 delete $to_serialize->{result_source};
9 return (Storable::freeze($to_serialize));
13 my ($self,$cloning,$serialized) = @_;
14 %$self = %{ Storable::thaw($serialized) };
15 $self->result_source($self->result_source_instance) if $self->can('result_source_instance');
24 DBIx::Class::Serialize::Storable - hooks for Storable freeze/thaw (EXPERIMENTAL)
28 # in a table class definition
29 __PACKAGE__->load_components(qw/Serialize::Storable/);
31 # meanwhile, in a nearby piece of code
32 my $obj = $schema->resultset('Foo')->find(12);
33 $cache->set($obj->ID, $obj); # if the cache uses Storable, this will work automatically
37 This component adds hooks for Storable so that row objects can be serialized. It assumes that
38 your row object class (C<result_class>) is the same as your table class, which is the normal
39 situation. However, this code is not yet well tested, and so should be considered experimental.
43 David Kamholz <dkamholz@cpan.org>
47 You may distribute this code under the same terms as Perl itself.