Tidy
[gitmo/Mouse.git] / lib / Mouse / Exporter.pm
index 9ac5661..b1f4f91 100644 (file)
@@ -149,7 +149,7 @@ sub do_import {
         my $arg = shift @args;
         if($arg =~ s/^-//){
             if($arg eq 'traits'){
-                push @traits, @{shift(@args)};
+                push @traits, ref($args[0]) ? @{shift(@args)} : shift(@args);
             }
             else {
                 Mouse::Util::not_supported("-$arg");
@@ -177,10 +177,11 @@ sub do_import {
         if(@traits){
             my $type = (split /::/, ref $meta)[-1]; # e.g. "Class" for "My::Meta::Class"
             @traits =
-                map{ ref($_) ? $_ : Mouse::Util::resolve_metaclass_alias($type => $_, trait => 1) }
-                @traits;
+                map{
+                    ref($_) ? $_
+                            : Mouse::Util::resolve_metaclass_alias($type => $_, trait => 1)
+                } @traits;
 
-            not_supported('-traits');
             require Mouse::Util::MetaRole;
             Mouse::Util::MetaRole::apply_metaclass_roles(
                 for_class       => $into,
@@ -188,6 +189,9 @@ sub do_import {
             );
         }
     }
+    elsif(@traits){
+        Carp::confess("Cannot provide traits when $package does not have an init_meta() method");
+    }
 
     if(@exports){
         foreach my $keyword(@exports){
@@ -249,7 +253,6 @@ sub _get_caller_package {
 #sub _spec{ %SPEC }
 
 1;
-
 __END__
 
 =head1 NAME
@@ -258,7 +261,7 @@ Mouse::Exporter - make an import() and unimport() just like Mouse.pm
 
 =head1 VERSION
 
-This document describes Mouse version 0.40_04
+This document describes Mouse version 0.40_09
 
 =head1 SYNOPSIS