X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FDBIx%2FClass%2FComponentised.pm;h=b417de6bbebc4b57af885d01d34db5e9d4775ee3;hb=7648acb5dd1f2f281ca84e2152efe314bcbf2c70;hp=57b143b62698c2eb65400a6229694d67a8d9cb89;hpb=5313035446c89abc0d4a437f412be826062f2298;p=dbsrgits%2FDBIx-Class.git diff --git a/lib/DBIx/Class/Componentised.pm b/lib/DBIx/Class/Componentised.pm index 57b143b..b417de6 100644 --- a/lib/DBIx/Class/Componentised.pm +++ b/lib/DBIx/Class/Componentised.pm @@ -5,10 +5,11 @@ use strict; use warnings; use base 'Class::C3::Componentised'; -use Carp::Clan qw/^DBIx::Class|^Class::C3::Componentised/; use mro 'c3'; -my $warned; +use DBIx::Class::_Util 'get_subname'; +use DBIx::Class::Carp '^DBIx::Class|^Class::C3::Componentised'; +use namespace::clean; # this warns of subtle bugs introduced by UTF8Columns hacky handling of store_column # if and only if it is placed before something overriding store_column @@ -37,8 +38,8 @@ sub inject_base { for (qw/DBIx::Class::UTF8Columns DBIx::Class::ForceUTF8/) { if ($comp->isa ($_) ) { $keep_checking = 0; # no use to check from this point on - carp "Use of $_ is strongly discouraged. See documentation of DBIx::Class::UTF8Columns for more info\n" - unless ($warned->{UTF8Columns}++ || $ENV{DBIC_UTF8COLUMNS_OK}); + carp_once "Use of $_ is strongly discouraged. See documentation of DBIx::Class::UTF8Columns for more info\n" + unless $ENV{DBIC_UTF8COLUMNS_OK}; last; } } @@ -54,8 +55,7 @@ sub inject_base { or next; if ($sc ne $base_store_column) { - require B; - my $definer = B::svref_2object($sc)->STASH->NAME; + my ($definer) = get_subname($sc); push @broken, ($definer eq $existing_comp) ? $existing_comp : "$existing_comp (via $definer)"