Exclude DBICTest namespace from stacktraces
Peter Rabbitson [Sun, 10 Mar 2013 10:05:06 +0000 (11:05 +0100)]
lib/DBIx/Class/Carp.pm
t/lib/DBICTest/BaseResultSet.pm

index 6fac196..d27df5d 100644 (file)
@@ -30,8 +30,6 @@ sub __find_caller {
   my $fr_num = 1; # skip us and the calling carp*
   my @f;
   while (@f = caller($fr_num++)) {
-    last if $f[0] !~ $skip_pattern;
-
     if (
       $f[0]->can('_skip_namespace_frames')
         and
@@ -39,6 +37,8 @@ sub __find_caller {
     ) {
       $skip_pattern = qr/$skip_pattern|$extra_skip/;
     }
+
+    last if $f[0] !~ $skip_pattern;
   }
 
   my ($ln, $calling) = @f # if empty - nothing matched - full stack
index 946219d..77d22f2 100644 (file)
@@ -8,6 +8,7 @@ use warnings;
 use DBICTest::RunMode;
 
 use base 'DBIx::Class::ResultSet';
+__PACKAGE__->_skip_namespace_frames('^DBICTest');
 
 sub all_hri {
   return [ shift->search ({}, { result_class => 'DBIx::Class::ResultClass::HashRefInflator' })->all ];