Refactor attribute constructor
[gitmo/Mouse.git] / lib / Mouse.pm
index 44a0c7e..6c09a77 100644 (file)
@@ -4,14 +4,12 @@ use warnings;
 use 5.006;
 use base 'Exporter';
 
-our $VERSION = '0.32';
-
-sub moose_version(){ 0.90 } # which Mouse is a subset of
+our $VERSION = '0.33_01';
 
 use Carp 'confess';
 use Scalar::Util 'blessed';
 
-use Mouse::Util qw(load_class is_class_loaded);
+use Mouse::Util qw(load_class is_class_loaded not_supported);
 
 use Mouse::Meta::Module;
 use Mouse::Meta::Class;
@@ -20,7 +18,15 @@ use Mouse::Meta::Attribute;
 use Mouse::Object;
 use Mouse::Util::TypeConstraints ();
 
-our @EXPORT = qw(extends has before after around override super blessed confess with);
+our @EXPORT = qw(
+    extends with
+    has
+    before after around
+    override super
+    augment  inner
+
+    blessed confess
+);
 
 our %is_removable = map{ $_ => undef } @EXPORT;
 delete $is_removable{blessed};
@@ -30,7 +36,9 @@ sub extends { Mouse::Meta::Class->initialize(scalar caller)->superclasses(@_) }
 
 sub has {
     my $meta = Mouse::Meta::Class->initialize(scalar caller);
-    $meta->add_attribute(@_);
+    my $name = shift;
+
+    $meta->add_attribute($_ => @_) for ref($name) ? @{$name} : $name;
 }
 
 sub before {
@@ -97,6 +105,9 @@ sub override {
     });
 }
 
+sub inner  { not_supported }
+sub augment{ not_supported }
+
 sub init_meta {
     shift;
     my %args = @_;