X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FSquirrel.pm;h=f73f8670fc6547511d3eb4a935b1b3bc385708bb;hb=2cea7a5fabbf2a81e0518c3f967706c9428afa8d;hp=f10d7cb5fcaf8dee459eb8bcd6644c2b1b3f0096;hpb=a7387a2ac6df320a1b130b65f87739cb3ea5e424;p=gitmo%2FMouse.git diff --git a/lib/Squirrel.pm b/lib/Squirrel.pm index f10d7cb..f73f867 100644 --- a/lib/Squirrel.pm +++ b/lib/Squirrel.pm @@ -5,15 +5,17 @@ use warnings; sub _choose_backend { if ( $INC{"Moose.pm"} ) { return { + backend => 'Moose', import => \&Moose::import, unimport => \&Moose::unimport, - } + }; } else { require Mouse; return { + backend => 'Mouse', import => \&Mouse::import, unimport => \&Mouse::unimport, - } + }; } } @@ -24,16 +26,22 @@ sub _handlers { my $caller = caller(1); - $pkgs{$caller} = $class->_choose_backend - unless $pkgs{$caller}; + $pkgs{$caller} ||= $class->_choose_backend; } sub import { - goto $_[0]->_handlers->{import}; + require Carp; + Carp::carp("Squirrel is deprecated. Please use Any::Moose instead. It fixes a number of design problems that Squirrel has."); + + my $handlers = shift->_handlers; + unshift @_, $handlers->{backend}; + goto &{$handlers->{import}}; } sub unimport { - goto $_[0]->_handlers->{unimport}; + my $handlers = shift->_handlers; + unshift @_, $handlers->{backend}; + goto &{$handlers->{unimport}}; } 1; @@ -56,7 +64,7 @@ Squirrel - Use L, unless L is already loaded. =head1 DEPRECATION -L is being deprecated. L provides the same functionality, +L is deprecated. L provides the same functionality, but better. :) =head1 DESCRIPTION