Add wu-lee to authors
[gitmo/Mouse.git] / lib / Mouse.pm
index 2281d35..ba791a9 100644 (file)
@@ -4,15 +4,7 @@ use warnings;
 use 5.006;
 use base 'Exporter';
 
-our $VERSION = '0.18';
-
-BEGIN {
-    if ($ENV{MOUSE_DEBUG}) {
-        *DEBUG = sub (){ 1 };
-    } else {
-        *DEBUG = sub (){ 0 };
-    }
-}
+our $VERSION = '0.20';
 
 use Carp 'confess';
 use Scalar::Util 'blessed';
@@ -29,30 +21,7 @@ sub extends { Mouse::Meta::Class->initialize(caller)->superclasses(@_) }
 
 sub has {
     my $meta = Mouse::Meta::Class->initialize(caller);
-
-    my $names = shift;
-    $names = [$names] if !ref($names);
-    my $metaclass = 'Mouse::Meta::Attribute';
-    my %options = @_;
-
-    if ( my $metaclass_name = delete $options{metaclass} ) {
-        my $new_class = Mouse::Util::resolve_metaclass_alias(
-            'Attribute',
-            $metaclass_name
-        );
-        if ( $metaclass ne $new_class ) {
-            $metaclass = $new_class;
-        }
-    }
-
-    for my $name (@$names) {
-        if ($name =~ s/^\+//) {
-            $metaclass->clone_parent($meta, $name, @_);
-        }
-        else {
-            $metaclass->create($meta, $name, @_);
-        }
-    }
+    $meta->add_attribute(@_);
 }
 
 sub before {
@@ -146,6 +115,9 @@ sub import {
     $meta->superclasses('Mouse::Object')
         unless $meta->superclasses;
 
+    # make a subtype for each Mouse class
+    class_type($caller) unless find_type_constraint($caller);
+
     no strict 'refs';
     no warnings 'redefine';
     *{$caller.'::meta'} = sub { $meta };
@@ -458,6 +430,8 @@ tokuhirom
 
 Yappo
 
+wu-lee
+
 with plenty of code borrowed from L<Class::MOP> and L<Moose>
 
 =head1 BUGS