X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FDBIx%2FClass%2FAccessorGroup.pm;h=0ae4b5bde7323a8dfcb212fc4a91025f3abf010d;hb=5f48fa565dc31b9d22762488afdec8502b8ca515;hp=01a5559d1ca033ef9d8faa7089eb36b32f21b464;hpb=e50536940adf2ebaef907a0c29ae37fbd5ce95b1;p=dbsrgits%2FDBIx-Class-Historic.git diff --git a/lib/DBIx/Class/AccessorGroup.pm b/lib/DBIx/Class/AccessorGroup.pm index 01a5559..0ae4b5b 100644 --- a/lib/DBIx/Class/AccessorGroup.pm +++ b/lib/DBIx/Class/AccessorGroup.pm @@ -3,7 +3,9 @@ package DBIx::Class::AccessorGroup; use strict; use warnings; -use base qw/Class::Accessor::Grouped/; +use base qw( DBIx::Class::MethodAttributes Class::Accessor::Grouped ); +use mro 'c3'; + use Scalar::Util qw/weaken blessed/; use DBIx::Class::_Util 'fail_on_internal_call'; use namespace::clean; @@ -46,7 +48,11 @@ sub get_component_class { }; sub set_component_class { - shift->set_inherited(@_); + $_[0]->set_inherited($_[1], $_[2]); + + # trigger a load for the case of $foo->component_accessor("bar")->new + $_[0]->get_component_class($_[1]) + if defined wantarray; } 1;