Remove Class::Data::Inheritable and use CAG 'inherited' style accessors
Peter Rabbitson [Tue, 19 Apr 2016 08:04:26 +0000 (10:04 +0200)]
This *is* a subtle change in behavior, as the CAG accessors could be overriden
by a rogue get/set_inherited in the stack. However keeping CDI in-place while
satisfying the requirements of the rsrc refactor is just too much work for a
miniscule risk avoidance. If something blows up - we'll think then.

26 files changed:
lib/DBIx/Class/CDBICompat/AbstractSearch.pm
lib/DBIx/Class/CDBICompat/AccessorMapping.pm
lib/DBIx/Class/CDBICompat/AttributeAPI.pm
lib/DBIx/Class/CDBICompat/AutoUpdate.pm
lib/DBIx/Class/CDBICompat/ColumnCase.pm
lib/DBIx/Class/CDBICompat/ColumnsAsHash.pm
lib/DBIx/Class/CDBICompat/Constraints.pm
lib/DBIx/Class/CDBICompat/Copy.pm
lib/DBIx/Class/CDBICompat/DestroyWarning.pm
lib/DBIx/Class/CDBICompat/GetSet.pm
lib/DBIx/Class/CDBICompat/ImaDBI.pm
lib/DBIx/Class/CDBICompat/Iterator.pm
lib/DBIx/Class/CDBICompat/LazyLoading.pm
lib/DBIx/Class/CDBICompat/LiveObjectIndex.pm
lib/DBIx/Class/CDBICompat/NoObjectIndex.pm
lib/DBIx/Class/CDBICompat/Pager.pm
lib/DBIx/Class/CDBICompat/ReadOnly.pm
lib/DBIx/Class/CDBICompat/Relationship.pm
lib/DBIx/Class/CDBICompat/Relationships.pm
lib/DBIx/Class/CDBICompat/Retrieve.pm
lib/DBIx/Class/CDBICompat/SQLTransformer.pm
lib/DBIx/Class/CDBICompat/Stringify.pm
lib/DBIx/Class/CDBICompat/TempColumns.pm
lib/DBIx/Class/CDBICompat/Triggers.pm
lib/DBIx/Class/Optional/Dependencies.pm
xt/extra/c3_mro.t

index 8f59106..23c009e 100644 (file)
@@ -4,6 +4,8 @@ package # hide form PAUSE
 use strict;
 use warnings;
 
+use base 'DBIx::Class';
+
 =head1 NAME
 
 DBIx::Class::CDBICompat::AbstractSearch - Emulates Class::DBI::AbstractSearch
index 1555937..e235440 100644 (file)
@@ -4,6 +4,8 @@ package # hide from PAUSE Indexer
 use strict;
 use warnings;
 
+use base 'DBIx::Class';
+
 use Scalar::Util 'blessed';
 use namespace::clean;
 
index abf9ac0..c847a39 100644 (file)
@@ -4,6 +4,8 @@ package # hide from PAUSE
 use strict;
 use warnings;
 
+use base 'DBIx::Class';
+
 sub _attrs {
   my ($self, @atts) = @_;
   return @{$self->{_column_data}}{@atts};
index c32c125..16f2164 100644 (file)
@@ -4,7 +4,7 @@ package # hide from PAUSE
 use strict;
 use warnings;
 
-use base qw/Class::Data::Inheritable/;
+use base 'DBIx::Class';
 
 __PACKAGE__->mk_classdata('__AutoCommit');
 
index 13bec9c..56bef61 100644 (file)
@@ -4,6 +4,8 @@ package # hide from PAUSE
 use strict;
 use warnings;
 
+use base 'DBIx::Class';
+
 sub _register_column_group {
   my ($class, $group, @cols) = @_;
   return $class->next::method($group => map lc, @cols);
index c5c1fe1..51b6e0b 100644 (file)
@@ -4,6 +4,7 @@ package
 use strict;
 use warnings;
 
+use base 'DBIx::Class';
 
 =head1 NAME
 
index 1014886..f77db52 100644 (file)
@@ -1,6 +1,8 @@
 package # hide from PAUSE
     DBIx::Class::CDBICompat::Constraints;
 
+use base 'DBIx::Class';
+
 use strict;
 use warnings;
 
index 77e7b5b..ec2e9ca 100644 (file)
@@ -4,6 +4,8 @@ package # hide from PAUSE
 use strict;
 use warnings;
 
+use base 'DBIx::Class';
+
 use Carp;
 
 =head1 NAME
index 61d243c..998bc5d 100644 (file)
@@ -3,6 +3,9 @@ package # hide from PAUSE
 
 use strict;
 use warnings;
+
+use base 'DBIx::Class';
+
 use DBIx::Class::_Util 'detected_reinvoked_destructor';
 use namespace::clean;
 
index dd621f2..e948048 100644 (file)
@@ -4,7 +4,7 @@ package # hide from PAUSE
 use strict;
 use warnings;
 
-#use base qw/Class::Accessor/;
+use base 'DBIx::Class';
 
 sub get {
   my ($self, @cols) = @_;
index 0ec6993..7a88d15 100644 (file)
@@ -6,7 +6,7 @@ use warnings;
 use DBIx::ContextualFetch;
 use DBIx::Class::_Util qw(quote_sub perlstring);
 
-use base qw(Class::Data::Inheritable);
+use base 'DBIx::Class';
 
 __PACKAGE__->mk_classdata('sql_transformer_class' =>
                           'DBIx::Class::CDBICompat::SQLTransformer');
index 86a3838..4995837 100644 (file)
@@ -3,6 +3,7 @@ package DBIx::Class::CDBICompat::Iterator;
 use strict;
 use warnings;
 
+use base 'DBIx::Class';
 
 =head1 NAME
 
index 798fcd3..a9e41af 100644 (file)
@@ -4,6 +4,8 @@ package # hide from PAUSE
 use strict;
 use warnings;
 
+use base 'DBIx::Class';
+
 sub resultset_instance {
   my $self = shift;
   my $rs = $self->next::method(@_);
index f05eff7..970b2d9 100644 (file)
@@ -6,7 +6,7 @@ use warnings;
 
 use Scalar::Util qw/weaken/;
 
-use base qw/Class::Data::Inheritable/;
+use base 'DBIx::Class';
 
 __PACKAGE__->mk_classdata('purge_object_index_every' => 1000);
 __PACKAGE__->mk_classdata('live_object_index' => { });
index f3c472d..e98e5eb 100644 (file)
@@ -4,6 +4,8 @@ package # hide from PAUSE
 use strict;
 use warnings;
 
+use base 'DBIx::Class';
+
 =head1 NAME
 
 DBIx::Class::CDBICompat::NoObjectIndex - Defines empty methods for object indexing. They do nothing
index 203b598..c8f76fe 100644 (file)
@@ -8,6 +8,8 @@ use strict;
 # leaving the compat layer as-is, something may in fact depend on that
 use warnings FATAL => 'all';
 
+use base 'DBIx::Class';
+
 *pager = \&page;
 
 sub page {
index 669a76d..9bab1f4 100644 (file)
@@ -4,6 +4,8 @@ package # hide from PAUSE
 use strict;
 use warnings;
 
+use base 'DBIx::Class';
+
 sub make_read_only {
   my $proto = shift;
   $proto->add_trigger("before_$_" => sub { shift->throw_exception("$proto is read only") })
index 95e414d..f9d0769 100644 (file)
@@ -4,6 +4,8 @@ package
 use strict;
 use warnings;
 
+use base 'DBIx::Class';
+
 use DBIx::Class::_Util 'quote_sub';
 
 =head1 NAME
index 8d923b3..abd6783 100644 (file)
@@ -3,7 +3,7 @@ package # hide from PAUSE
 
 use strict;
 use warnings;
-use base 'Class::Data::Inheritable';
+use base 'DBIx::Class';
 
 use Clone;
 use DBIx::Class::CDBICompat::Relationship;
index 87f5318..2ddd4b2 100644 (file)
@@ -8,6 +8,8 @@ use strict;
 # leaving the compat layer as-is, something may in fact depend on that
 use warnings FATAL => 'all';
 
+use base 'DBIx::Class';
+
 sub retrieve {
   my $self = shift;
   die "No args to retrieve" unless @_ > 0;
index fd54b7e..cc9d9f0 100644 (file)
@@ -3,6 +3,8 @@ package DBIx::Class::CDBICompat::SQLTransformer;
 use strict;
 use warnings;
 
+use base 'DBIx::Class';
+
 =head1 NAME
 
 DBIx::Class::CDBICompat::SQLTransformer - Transform SQL
index 4d13171..e1c9a36 100644 (file)
@@ -4,7 +4,7 @@ package # hide from PAUSE
 use strict;
 use warnings;
 
-use Scalar::Util;
+use base 'DBIx::Class';
 
 use overload
   '""' => sub { return shift->stringify_self; },
index 428719e..3a111ee 100644 (file)
@@ -3,7 +3,7 @@ package # hide from PAUSE
 
 use strict;
 use warnings;
-use base qw/Class::Data::Inheritable/;
+use base 'DBIx::Class';
 
 use Carp;
 
index 3f6aef7..0428b6a 100644 (file)
@@ -3,6 +3,9 @@ package # hide from PAUSE
 
 use strict;
 use warnings;
+
+use base 'DBIx::Class';
+
 use Class::Trigger;
 
 sub insert {
index 43790b2..4bb44ff 100644 (file)
@@ -178,7 +178,6 @@ my $dbic_reqs = {
 
   cdbicompat => {
     req => {
-      'Class::Data::Inheritable' => '0',
       'Class::Trigger' => '0',
       'DBIx::ContextualFetch' => '0',
       'Clone' => '0.32',
index 1c5001a..27a0341 100644 (file)
@@ -5,6 +5,7 @@ use strict;
 
 use Test::More;
 use DBICTest;
+use DBIx::Class::Optional::Dependencies;
 
 my @global_ISA_tail = qw(
   DBIx::Class
@@ -59,6 +60,12 @@ check_ancestry($_) for (
   ref( $art->result_source->resultset ),
   ref( $art->result_source->schema ),
   qw( AAA BBB CCC ),
+  ((! DBIx::Class::Optional::Dependencies->req_ok_for('cdbicompat') ) ? () : do {
+    unshift @INC, 't/cdbi/testlib';
+    map { eval "require $_" or die $@; $_ } qw(
+      Film Lazy Actor ActorAlias ImplicitInflate
+    );
+  }),
 );
 
 use DBIx::Class::Storage::DBI::Sybase::Microsoft_SQL_Server;