Using DBIx::Class as a parent causes Class::Accessor::Grouped to be
Michael G Schwern [Fri, 24 Oct 2008 02:54:25 +0000 (02:54 +0000)]
introduced to the hierarchy too early and thus CDBICompat::AccessorMapping's
own mk_group_accessor() not get called.

The only reason we're inheriting from DBIx::Class is to get mk_classdata().
Get it from Class::Data::Inheritable instead.  mk_classdata() should be
moved out of DBIx::Class into a role to avoid this problem.

lib/DBIx/Class/CDBICompat/ColumnCase.pm
lib/DBIx/Class/CDBICompat/ImaDBI.pm
lib/DBIx/Class/CDBICompat/TempColumns.pm
t/cdbi-t/15-accessor.t

index a7c62a9..d6db87b 100644 (file)
@@ -4,8 +4,6 @@ package # hide from PAUSE
 use strict;
 use warnings;
 
-use base qw/DBIx::Class/;
-
 sub _register_column_group {
   my ($class, $group, @cols) = @_;
   return $class->next::method($group => map lc, @cols);
index 896eca7..7a3b4f0 100644 (file)
@@ -6,7 +6,7 @@ use warnings;
 use DBIx::ContextualFetch;
 use Sub::Name ();
 
-use base qw/DBIx::Class/;
+use base qw(Class::Data::Inheritable);
 
 __PACKAGE__->mk_classdata('sql_transformer_class' =>
                           'DBIx::Class::CDBICompat::SQLTransformer');
index 923e895..f5b60d4 100644 (file)
@@ -3,7 +3,7 @@ package # hide from PAUSE
 
 use strict;
 use warnings;
-use base qw/DBIx::Class/;
+use base qw/Class::Data::Inheritable/;
 
 use Carp;
 
index 99bcdbd..82f6310 100644 (file)
@@ -41,7 +41,7 @@ sub Actor::accessor_name_for {
        return $col;
 }
 
-# This is a class with accessor_name_for() but no corresponding mutatori_name_for()
+# This is a class with accessor_name_for() but no corresponding mutator_name_for()
 sub Director::accessor_name_for {
     my($class, $col) = @_;
     return "nutty_as_a_fruitcake" if lc $col eq "isinsane";