From: Peter Rabbitson Date: Fri, 18 Sep 2009 18:38:26 +0000 (+0000) Subject: Clear up some legacy cruft and straighten inheritance X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=commitdiff_plain;h=48a76fcfd023d2149f6980bd9a7bdc4937dbc4fc;p=dbsrgits%2FDBIx-Class-Historic.git Clear up some legacy cruft and straighten inheritance --- diff --git a/lib/DBIx/Class.pm b/lib/DBIx/Class.pm index d777873..29b441b 100644 --- a/lib/DBIx/Class.pm +++ b/lib/DBIx/Class.pm @@ -6,7 +6,7 @@ use warnings; use MRO::Compat; use vars qw($VERSION); -use base qw/DBIx::Class::Componentised Class::Accessor::Grouped/; +use base qw/Class::C3::Componentised Class::Accessor::Grouped/; use DBIx::Class::StartupCheck; sub mk_classdata { diff --git a/lib/DBIx/Class/Componentised.pm b/lib/DBIx/Class/Componentised.pm index 7b4cb1f..7cb5d54 100644 --- a/lib/DBIx/Class/Componentised.pm +++ b/lib/DBIx/Class/Componentised.pm @@ -4,31 +4,10 @@ package # hide from PAUSE use strict; use warnings; -use base 'Class::C3::Componentised'; -use Carp::Clan qw/^DBIx::Class/; - -sub inject_base { - my ($class, $target, @to_inject) = @_; - { - no strict 'refs'; - foreach my $to (reverse @to_inject) { - my @comps = qw(DigestColumns ResultSetManager Ordered UTF8Columns); - # Add components here that need to be loaded before Core - foreach my $first_comp (@comps) { - if ($to eq 'DBIx::Class::Core' && - $target->isa("DBIx::Class::${first_comp}")) { - carp "Possible incorrect order of components in ". - "${target}::load_components($first_comp) call: Core loaded ". - "before $first_comp. See the documentation for ". - "DBIx::Class::$first_comp for more information"; - } - } - unshift( @{"${target}::ISA"}, $to ) - unless ($target eq $to || $target->isa($to)); - } - } +### +# Keep this class for backwards compatibility +### - $class->next::method($target, @to_inject); -} +use base 'Class::C3::Componentised'; 1; diff --git a/lib/DBIx/Class/Cursor.pm b/lib/DBIx/Class/Cursor.pm index ded8b56..14816ab 100644 --- a/lib/DBIx/Class/Cursor.pm +++ b/lib/DBIx/Class/Cursor.pm @@ -3,6 +3,8 @@ package DBIx::Class::Cursor; use strict; use warnings; +use base qw/DBIx::Class/; + =head1 NAME DBIx::Class::Cursor - Abstract object representing a query cursor on a diff --git a/lib/DBIx/Class/Storage/DBI/Cursor.pm b/lib/DBIx/Class/Storage/DBI/Cursor.pm index b2c1354..875a3cb 100644 --- a/lib/DBIx/Class/Storage/DBI/Cursor.pm +++ b/lib/DBIx/Class/Storage/DBI/Cursor.pm @@ -3,11 +3,7 @@ package DBIx::Class::Storage::DBI::Cursor; use strict; use warnings; -use base qw/ - Class::Accessor::Grouped - DBIx::Class::Cursor -/; -use mro 'c3'; +use base qw/DBIx::Class::Cursor/; __PACKAGE__->mk_group_accessors('simple' => qw/sth/ diff --git a/lib/DBIx/Class/Storage/Statistics.pm b/lib/DBIx/Class/Storage/Statistics.pm index c8162bf..6852cd8 100644 --- a/lib/DBIx/Class/Storage/Statistics.pm +++ b/lib/DBIx/Class/Storage/Statistics.pm @@ -2,7 +2,7 @@ package DBIx::Class::Storage::Statistics; use strict; use warnings; -use base qw/Class::Accessor::Grouped/; +use base qw/DBIx::Class/; use IO::File; __PACKAGE__->mk_group_accessors(simple => qw/callback debugfh silence/); diff --git a/t/05components.t b/t/05components.t index 303f028..9bd22f5 100644 --- a/t/05components.t +++ b/t/05components.t @@ -7,8 +7,6 @@ use Test::More; use lib qw(t/lib); use DBICTest::ForeignComponent; -plan tests => 6; - # Tests if foreign component was loaded by calling foreign's method ok( DBICTest::ForeignComponent->foreign_test_method, 'foreign component' ); @@ -35,32 +33,7 @@ is_deeply( \@DBICTest::_InjectBaseTest::ISA, 'inject_base filters duplicates' ); -# Test for a warning with incorrect order in load_components -my @warnings = (); -{ - package A::Test; - our @ISA = 'DBIx::Class'; - { - local $SIG{__WARN__} = sub { push @warnings, shift}; - __PACKAGE__->load_components(qw(Core UTF8Columns)); - } -} -like( $warnings[0], qr/Core loaded before UTF8Columns/, - 'warning issued for incorrect order in load_components()' ); -is( scalar @warnings, 1, - 'only one warning issued for incorrect load_components call' ); - -# Test that no warning is issued for the correct order in load_components -{ - @warnings = (); - package B::Test; - our @ISA = 'DBIx::Class'; - { - local $SIG{__WARN__} = sub { push @warnings, shift }; - __PACKAGE__->load_components(qw(UTF8Columns Core)); - } -} -is( scalar @warnings, 0, - 'warning not issued for correct order in load_components()' ); - use_ok('DBIx::Class::AccessorGroup'); +use_ok('DBIx::Class::Componentised'); + +done_testing;