Streamline ::ResultSource::* inheritance, similar to d009cb7d
Peter Rabbitson [Sun, 15 May 2016 13:54:30 +0000 (15:54 +0200)]
There should be zero functional changes

lib/DBIx/Class/ResultSource.pm
lib/DBIx/Class/ResultSource/RowParser.pm
lib/DBIx/Class/ResultSource/Table.pm
lib/DBIx/Class/ResultSource/View.pm
xt/extra/c3_mro.t

index 14e07d3..6fa12c3 100644 (file)
@@ -3,10 +3,8 @@ package DBIx::Class::ResultSource;
 use strict;
 use warnings;
 
-use base 'DBIx::Class';
-__PACKAGE__->load_components(qw(
-  ResultSource::RowParser
-));
+use base 'DBIx::Class::ResultSource::RowParser';
+use mro 'c3';
 
 use DBIx::Class::Carp;
 use DBIx::Class::_Util qw( UNRESOLVABLE_CONDITION dbic_internal_try fail_on_internal_call );
@@ -14,6 +12,9 @@ use SQL::Abstract 'is_literal_value';
 use Devel::GlobalDestruction;
 use Scalar::Util qw/blessed weaken isweak/;
 
+# FIXME - somehow breaks ResultSetManager, do not remove until investigated
+use DBIx::Class::ResultSet;
+
 use namespace::clean;
 
 __PACKAGE__->mk_group_accessors(simple => qw/
index 9d41e01..efd67b1 100644 (file)
@@ -5,6 +5,7 @@ use strict;
 use warnings;
 
 use base 'DBIx::Class';
+use mro 'c3';
 
 use Try::Tiny;
 use List::Util 'max';
index f1900f9..e1dcc03 100644 (file)
@@ -3,10 +3,8 @@ package DBIx::Class::ResultSource::Table;
 use strict;
 use warnings;
 
-use DBIx::Class::ResultSet;
-
-use base qw/DBIx::Class/;
-__PACKAGE__->load_components(qw/ResultSource/);
+use base 'DBIx::Class::ResultSource';
+use mro 'c3';
 
 =head1 NAME
 
index 846bcf6..5995790 100644 (file)
@@ -3,10 +3,9 @@ package DBIx::Class::ResultSource::View;
 use strict;
 use warnings;
 
-use DBIx::Class::ResultSet;
+use base 'DBIx::Class::ResultSource';
+use mro 'c3';
 
-use base qw/DBIx::Class/;
-__PACKAGE__->load_components(qw/ResultSource/);
 __PACKAGE__->mk_group_accessors(
     'simple' => qw(is_virtual view_definition deploy_depends_on) );
 
index 27a0341..db60402 100644 (file)
@@ -59,6 +59,10 @@ check_ancestry($_) for (
   ref( $art->result_source ),
   ref( $art->result_source->resultset ),
   ref( $art->result_source->schema ),
+  ( map
+    { ref $art->result_source->schema->source($_) }
+    $art->result_source->schema->sources
+  ),
   qw( AAA BBB CCC ),
   ((! DBIx::Class::Optional::Dependencies->req_ok_for('cdbicompat') ) ? () : do {
     unshift @INC, 't/cdbi/testlib';