Majorly cleanup $rs->update/delete (no $rs-aware code should be in ::Storages)
[dbsrgits/DBIx-Class.git] / lib / DBIx / Class / AccessorGroup.pm
1 package DBIx::Class::AccessorGroup;
2
3 use strict;
4 use warnings;
5
6 use base qw/Class::Accessor::Grouped/;
7 use Scalar::Util qw/weaken/;
8 use namespace::clean;
9
10 my $successfully_loaded_components;
11
12 sub get_component_class {
13   my $class = $_[0]->get_inherited($_[1]);
14
15   if (defined $class and ! $successfully_loaded_components->{$class} ) {
16     $_[0]->ensure_class_loaded($class);
17
18     no strict 'refs';
19     $successfully_loaded_components->{$class}
20       = ${"${class}::__LOADED__BY__DBIC__CAG__COMPONENT_CLASS__"}
21         = do { \(my $anon = 'loaded') };
22     weaken($successfully_loaded_components->{$class});
23   }
24
25   $class;
26 };
27
28 sub set_component_class {
29   shift->set_inherited(@_);
30 }
31
32 1;
33
34 =head1 NAME
35
36 DBIx::Class::AccessorGroup - See Class::Accessor::Grouped
37
38 =head1 SYNOPSIS
39
40 =head1 DESCRIPTION
41
42 This class now exists in its own right on CPAN as Class::Accessor::Grouped
43
44 =head1 AUTHORS
45
46 Matt S. Trout <mst@shadowcatsystems.co.uk>
47
48 =head1 LICENSE
49
50 You may distribute this code under the same terms as Perl itself.
51
52 =cut
53