X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FDBIx%2FClass%2FCDBICompat.pm;h=835adfe37f7fbcb094aad77d61aa4018f6387c5e;hb=ef8f6e190c35e6a87fb03ada9929ebb33474865c;hp=52c0509e940640db09d58619a2f60fb80f13f06c;hpb=fbee5c55de34295824d987129c7d0b4bc65279a8;p=dbsrgits%2FDBIx-Class.git diff --git a/lib/DBIx/Class/CDBICompat.pm b/lib/DBIx/Class/CDBICompat.pm index 52c0509..835adfe 100644 --- a/lib/DBIx/Class/CDBICompat.pm +++ b/lib/DBIx/Class/CDBICompat.pm @@ -5,11 +5,20 @@ use warnings; use base qw/DBIx::Class::Core DBIx::Class::DB/; use Carp::Clan qw/^DBIx::Class/; -eval { - require Class::Trigger; - require DBIx::ContextualFetch; -}; -croak "Class::Trigger and DBIx::ContextualFetch is required for CDBICompat" if $@; +# Modules CDBICompat needs that DBIx::Class does not. +my @Extra_Modules = qw( + Class::Trigger + DBIx::ContextualFetch + Clone +); + +my @didnt_load; +for my $module (@Extra_Modules) { + push @didnt_load, $module unless eval qq{require $module}; +} +croak("@{[ join ', ', @didnt_load ]} are missing and are required for CDBICompat") + if @didnt_load; + __PACKAGE__->load_own_components(qw/ Constraints @@ -140,13 +149,13 @@ Relationships between tables (has_a, has_many...) must be delcared after all tab package Foo; use base qw(Class::DBI); - + Foo->table("foo"); Foo->columns( All => qw(this that bar) ); package Bar; use base qw(Class::DBI); - + Bar->table("bar"); Bar->columns( All => qw(up down) );