Refactor many many things
[gitmo/Mouse.git] / lib / Mouse / Role.pm
index 9872397..59cccd2 100644 (file)
@@ -9,7 +9,18 @@ use Scalar::Util 'blessed';
 use Mouse::Util qw(load_class not_supported);
 use Mouse ();
 
-our @EXPORT = qw(before after around super override inner augment has extends with requires excludes confess blessed);
+our @EXPORT = qw(
+    extends with
+    has
+    before after around
+    override super
+    augment  inner
+
+    requires excludes
+
+    blessed confess
+);
+
 our %is_removable = map{ $_ => undef } @EXPORT;
 delete $is_removable{confess};
 delete $is_removable{blessed};
@@ -79,11 +90,9 @@ sub augment {
 
 sub has {
     my $meta = Mouse::Meta::Role->initialize(scalar caller);
-
     my $name = shift;
-    my %opts = @_;
 
-    $meta->add_attribute($name => \%opts);
+    $meta->add_attribute($_ => @_) for ref($name) ? @{$name} : $name;
 }
 
 sub extends  {