From: David Kamholz Date: Mon, 6 Feb 2006 01:48:35 +0000 (+0000) Subject: - add docs to Serialize and ResultSetManager X-Git-Tag: v0.05005~39 X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=commitdiff_plain;h=1934596800201c16279d6d1b639507daec050447;p=dbsrgits%2FDBIx-Class.git - add docs to Serialize and ResultSetManager - updated Changes --- diff --git a/Changes b/Changes index 379310b..dba888d 100644 --- a/Changes +++ b/Changes @@ -7,6 +7,7 @@ Revision history for DBIx::Class - hack PK::Auto::Pg for "table" names referencing a schema - find() with attributes works - added experimental Serialize and ResultSetManager components + - added code attribute recording to DBIx::Class - fix to find() for complex resultsets - added of $storage->debugcb(sub { ... }) - added $source->resultset_attributes accessor diff --git a/lib/DBIx/Class/ResultSetManager.pm b/lib/DBIx/Class/ResultSetManager.pm index 258cc7c..9989b2e 100644 --- a/lib/DBIx/Class/ResultSetManager.pm +++ b/lib/DBIx/Class/ResultSetManager.pm @@ -58,4 +58,37 @@ sub _register_resultset_class { } } -1; \ No newline at end of file +1; + +__END__ + +=head1 NAME + + DBIx::Class::ResultSetManager - helpful methods for managing resultset classes (EXPERIMENTAL) + +=head1 SYNOPSIS + + # in a table class + __PACKAGE__->load_components(qw/ResultSetManager/); + __PACKAGE__->load_resultset_components(qw/AlwaysRS/); + + # will be removed from the table class and inserted into a table-specific resultset class + sub foo : resultset { ... } + +=head1 DESCRIPTION + +This package implements two useful features for customizing resultset classes. +C loads components in addition to C +(or whatever you set as C). Any methods tagged with the C +attribute will be moved into a table-specific resultset class (by default called +C). + +=head1 AUTHORS + +David Kamholz + +=head1 LICENSE + +You may distribute this code under the same terms as Perl itself. + +=cut diff --git a/lib/DBIx/Class/Serialize.pm b/lib/DBIx/Class/Serialize.pm index 0db5176..86e3d2f 100644 --- a/lib/DBIx/Class/Serialize.pm +++ b/lib/DBIx/Class/Serialize.pm @@ -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