Move M::Util::(version|authority|identifier) to M::Meta::Module
[gitmo/Mouse.git] / lib / Mouse / Util.pm
index ff39422..25de2ab 100644 (file)
@@ -8,9 +8,6 @@ use B ();
 our @EXPORT_OK = qw(
     get_linear_isa
     apply_all_roles
-    version 
-    authority
-    identifier
     get_code_info
 );
 our %EXPORT_TAGS = (
@@ -63,31 +60,17 @@ BEGIN {
     sub get_code_info($) {\r
         my ($coderef) = @_;\r
         ref($coderef) or return;\r
+
         my $cv = B::svref_2object($coderef);\r
         $cv->isa('B::CV') or return;
 
         my $gv = $cv->GV;\r
-        # bail out if GV is undefined\r
-        $gv->isa('B::SPECIAL') and return;\r
+        $gv->isa('B::GV') or return;\r
 \r
         return ($gv->STASH->NAME, $gv->NAME);\r
     }\r
 }
 
-{ # adapted from Class::MOP::Module
-
-    sub version { no strict 'refs'; ${shift->name.'::VERSION'} }
-    sub authority { no strict 'refs'; ${shift->name.'::AUTHORITY'} }  
-    sub identifier {
-        my $self = shift;
-        join '-' => (
-            $self->name,
-            ($self->version   || ()),
-            ($self->authority || ()),
-        );
-    }
-}
-
 # taken from Class/MOP.pm
 {
     my %cache;
@@ -134,16 +117,14 @@ sub load_first_existing_class {
     my @classes = @_
       or return;
 
-    foreach my $class (@classes) {
+    my $found;
+    my %exceptions;
+    for my $class (@classes) {
         unless ( _is_valid_class_name($class) ) {
             my $display = defined($class) ? $class : 'undef';
             confess "Invalid class name ($display)";
         }
-    }
 
-    my $found;
-    my %exceptions;
-    for my $class (@classes) {
         my $e = _try_load_one_class($class);
 
         if ($e) {
@@ -213,7 +194,7 @@ sub apply_all_roles {
     else {
         Mouse::Meta::Role->combine_apply($meta, @roles);
     }
-
+    return;
 }
 
 1;