use strict;
use warnings;
+# FIXME This is a crock of shit, needs to go away
+# currently here to work around https://rt.cpan.org/Ticket/Display.html?id=74151
+# kill with fire when PS::XS / RT#74151 is *finally* fixed
+BEGIN {
+ my $PS_provider;
+
+ if ( "$]" < 5.010 ) {
+ require Package::Stash::PP;
+ $PS_provider = 'Package::Stash::PP';
+ }
+ else {
+ require Package::Stash;
+ $PS_provider = 'Package::Stash';
+ }
+ eval <<"EOS" or die $@;
+
+sub stash_for (\$) {
+ $PS_provider->new(\$_[0]);
+}
+1;
+EOS
+}
+
use Test::More;
use DBICTest;
use File::Find;
use File::Spec;
use B qw/svref_2object/;
-use Package::Stash;
# makes sure we can load at least something
use DBIx::Class;
# have an exception table for old and/or weird code we are not sure
# we *want* to clean in the first place
my $skip_idx = { map { $_ => 1 } (
- (grep { /^DBIx::Class::CDBICompat/ } @modules), # too crufty to touch
- 'SQL::Translator::Producer::DBIx::Class::File', # ditto
+ 'SQL::Translator::Producer::DBIx::Class::File', # too crufty to touch
# not sure how to handle type libraries
'DBIx::Class::Storage::DBI::Replicated::Types',
skip "$mod exempt from namespace checks",1 if $skip_idx->{$mod};
my %all_method_like = (map
- { %{Package::Stash->new($_)->get_all_symbols('CODE')} }
+ { %{stash_for($_)->get_all_symbols('CODE')} }
(reverse @{mro::get_linear_isa($mod)})
);
# exception time
if (
( $name eq 'import' and $via = 'Exporter' )
+ or
+ # jesus christ nobody had any idea how to design an interface back then
+ ( $name =~ /_trigger/ and $via = 'Class::Trigger' )
) {
pass("${mod}::${name} is a valid uncleaned import from ${name}");
}
find( {
wanted => sub {
-f $_ or return;
+ $_ =~ m|lib/DBIx/Class/_TempExtlib| and return;
s/\.pm$// or return;
s/^ (?: lib | blib . (?:lib|arch) ) . //x;
push @modules, join ('::', File::Spec->splitdir($_));