X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FMouse%2FUtil.pm;h=73e76baced88e4b5849e0b1a361ff6cb85d212cc;hb=fce211ae5c3943a1b041b9c0985c4daf189fb8a8;hp=25de2abf4084b23f24f29efd251a640d118d4108;hpb=23264b5b200f08d7258efc1509846d0a161194e1;p=gitmo%2FMouse.git diff --git a/lib/Mouse/Util.pm b/lib/Mouse/Util.pm index 25de2ab..73e76ba 100644 --- a/lib/Mouse/Util.pm +++ b/lib/Mouse/Util.pm @@ -9,6 +9,7 @@ our @EXPORT_OK = qw( get_linear_isa apply_all_roles get_code_info + not_supported ); our %EXPORT_TAGS = ( all => \@EXPORT_OK, @@ -52,8 +53,9 @@ BEGIN { } } - no strict 'refs'; - *{ __PACKAGE__ . '::get_linear_isa'} = $impl; + + no warnings 'once'; + *get_linear_isa = $impl; } { # taken from Sub::Identify @@ -100,7 +102,7 @@ BEGIN { } # taken from Class/MOP.pm -sub _is_valid_class_name { +sub is_valid_class_name { my $class = shift; return 0 if ref($class); @@ -120,7 +122,7 @@ sub load_first_existing_class { my $found; my %exceptions; for my $class (@classes) { - unless ( _is_valid_class_name($class) ) { + unless ( is_valid_class_name($class) ) { my $display = defined($class) ? $class : 'undef'; confess "Invalid class name ($display)"; } @@ -197,6 +199,15 @@ sub apply_all_roles { return; } +sub not_supported{ + my($feature) = @_; + + $feature ||= ( caller(1) )[3]; # subroutine name + + local $Carp::CarpLevel = $Carp::CarpLevel + 2; + Carp::croak("Mouse does not currently support $feature"); +} + 1; __END__