A tiny tweak
[gitmo/Mouse.git] / lib / Mouse / Util.pm
index 25de2ab..73e76ba 100644 (file)
@@ -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__