X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FDBIx%2FClass%2FResultSetManager.pm;h=d2746e58fdc5b4daf463108baad082d4e51260b8;hb=fcf32d045;hp=46aa406bebb3009891cb8a275bd682684df78e2f;hpb=9b83fccd091065fcebbb6fb6fb7bf2c2da38ffe2;p=dbsrgits%2FDBIx-Class.git diff --git a/lib/DBIx/Class/ResultSetManager.pm b/lib/DBIx/Class/ResultSetManager.pm index 46aa406..d2746e5 100644 --- a/lib/DBIx/Class/ResultSetManager.pm +++ b/lib/DBIx/Class/ResultSetManager.pm @@ -2,41 +2,28 @@ package DBIx::Class::ResultSetManager; use strict; use warnings; use base 'DBIx::Class'; +use Sub::Name (); use Class::Inspector; -=head1 NAME - -DBIx::Class::ResultSetManager - helpful methods for managing resultset -classes (EXPERIMENTAL) - -=head1 SYNOPSIS +warn "DBIx::Class::ResultSetManager never left experimental status and +has now been DEPRECATED. This module will be deleted in 09000 so please +migrate any and all code using it to explicit resultset classes using either +__PACKAGE__->resultset_class(...) calls or by switching from using +DBIx::Class::Schema->load_classes() to load_namespaces() and creating +appropriate My::Schema::ResultSet::* classes for it to pick up."; - # in a table class - __PACKAGE__->load_components(qw/ResultSetManager Core/); # note order! - __PACKAGE__->load_resultset_components(qw/AlwaysRS/); - - # will be removed from the table class and inserted into a - # table-specific resultset class - sub search_by_year_desc : ResultSet { - my $self = shift; - my $cond = shift; - my $attrs = shift || {}; - $attrs->{order_by} = 'year DESC'; - $self->search($cond, $attrs); - } +=head1 NAME - $rs = $schema->resultset('CD')->search_by_year_desc({ artist => 'Tool' }); +DBIx::Class::ResultSetManager - scheduled for deletion in 09000 =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, but configurable via -C). Most of the magic is done when you -call C<< __PACKAGE__->table >>. +DBIx::Class::ResultSetManager never left experimental status and +has now been DEPRECATED. This module will be deleted in 09000 so please +migrate any and all code using it to explicit resultset classes using either +__PACKAGE__->resultset_class(...) calls or by switching from using +DBIx::Class::Schema->load_classes() to load_namespaces() and creating +appropriate My::Schema::ResultSet::* classes for it to pick up."; =cut @@ -45,17 +32,6 @@ __PACKAGE__->mk_classdata($_) __PACKAGE__->base_resultset_class('DBIx::Class::ResultSet'); __PACKAGE__->table_resultset_class_suffix('::_resultset'); -=head2 table - -Stacks on top of the normal L C method. Any -methods tagged with the C attribute will be moved into a -table-specific resultset class (by default called -C, but configurable via -C). The magic for this is done within -this C<< __PACKAGE__->table >> call. - -=cut - sub table { my ($self,@rest) = @_; my $ret = $self->next::method(@rest); @@ -66,18 +42,6 @@ sub table { return $ret; } -=head2 load_resultset_components - - # in a table class - __PACKAGE__->load_components(qw/ResultSetManager Core/); # note order! - __PACKAGE__->load_resultset_components(qw/AlwaysRS/); - -C loads components in addition to -C (or whatever you set as -C). - -=cut - sub load_resultset_components { my ($self,@comp) = @_; my $resultset_class = $self->_setup_resultset_class; @@ -95,7 +59,8 @@ sub _register_attributes { if ($attrs->[0] eq 'ResultSet') { no strict 'refs'; my $resultset_class = $self->_setup_resultset_class; - *{"$resultset_class\::$meth"} = $self->can($meth); + my $name = join '::',$resultset_class, $meth; + *$name = Sub::Name::subname $name, $self->can($meth); delete ${"${self}::"}{$meth}; } } @@ -124,13 +89,3 @@ sub _register_resultset_class { } 1; - -=head1 AUTHORS - -David Kamholz - -=head1 LICENSE - -You may distribute this code under the same terms as Perl itself. - -=cut