1 package DBIx::Class::ResultSetManager;
4 use base 'DBIx::Class';
8 warn "DBIx::Class::ResultSetManager never left experimental status and
9 has now been DEPRECATED. This module will be deleted in 09000 so please
10 migrate any and all code using it to explicit resultset classes using either
11 __PACKAGE__->resultset_class(...) calls or by switching from using
12 DBIx::Class::Schema->load_classes() to load_namespaces() and creating
13 appropriate My::Schema::ResultSet::* classes for it to pick up.";
17 DBIx::Class::ResultSetManager - scheduled for deletion in 09000
21 DBIx::Class::ResultSetManager never left experimental status and
22 has now been DEPRECATED. This module will be deleted in 09000 so please
23 migrate any and all code using it to explicit resultset classes using either
24 __PACKAGE__->resultset_class(...) calls or by switching from using
25 DBIx::Class::Schema->load_classes() to load_namespaces() and creating
26 appropriate My::Schema::ResultSet::* classes for it to pick up.";
30 __PACKAGE__->mk_classdata($_)
31 for qw/ base_resultset_class table_resultset_class_suffix /;
32 __PACKAGE__->base_resultset_class('DBIx::Class::ResultSet');
33 __PACKAGE__->table_resultset_class_suffix('::_resultset');
36 my ($self,@rest) = @_;
37 my $ret = $self->next::method(@rest);
39 $self->_register_attributes;
40 $self->_register_resultset_class;
45 sub load_resultset_components {
46 my ($self,@comp) = @_;
47 my $resultset_class = $self->_setup_resultset_class;
48 $resultset_class->load_components(@comp);
51 sub _register_attributes {
53 my $cache = $self->_attr_cache;
54 return if keys %$cache == 0;
56 foreach my $meth (@{Class::Inspector->methods($self) || []}) {
57 my $attrs = $cache->{$self->can($meth)};
59 if ($attrs->[0] eq 'ResultSet') {
61 my $resultset_class = $self->_setup_resultset_class;
62 my $name = join '::',$resultset_class, $meth;
63 *$name = Sub::Name::subname $name, $self->can($meth);
64 delete ${"${self}::"}{$meth};
69 sub _setup_resultset_class {
71 my $resultset_class = $self . $self->table_resultset_class_suffix;
73 unless (@{"$resultset_class\::ISA"}) {
74 @{"$resultset_class\::ISA"} = ($self->base_resultset_class);
76 return $resultset_class;
79 sub _register_resultset_class {
81 my $resultset_class = $self . $self->table_resultset_class_suffix;
83 if (@{"$resultset_class\::ISA"}) {
84 $self->result_source_instance->resultset_class($resultset_class);
86 $self->result_source_instance->resultset_class
87 ($self->base_resultset_class);