Update MANIFEST.SKIP
[gitmo/Mouse.git] / lib / Mouse.pm
index 81bce55..78d54ea 100644 (file)
@@ -3,10 +3,10 @@ use 5.006_002;
 
 use Mouse::Exporter; # enables strict and warnings
 
-our $VERSION = '0.37_02';
+our $VERSION = '0.37_05';
 
 use Carp qw(confess);
-use Scalar::Util ();
+use Scalar::Util qw(blessed);
 
 use Mouse::Util qw(load_class is_class_loaded get_code_package not_supported);
 
@@ -30,12 +30,25 @@ Mouse::Exporter->setup_import_methods(
    ],
 );
 
+# XXX: for backward compatibility
+our @EXPORT = qw(
+    extends with
+    has
+    before after around
+    override super
+    augment  inner
+    blessed confess
+);
+
 sub extends { Mouse::Meta::Class->initialize(scalar caller)->superclasses(@_) }
 
 sub has {
     my $meta = Mouse::Meta::Class->initialize(scalar caller);
     my $name = shift;
 
+    $meta->throw_error(q{Usage: has 'name' => ( key => value, ... )})\r
+        if @_ % 2; # odd number of arguments
+
     $meta->add_attribute($_ => @_) for ref($name) ? @{$name} : $name;
 }
 
@@ -117,13 +130,10 @@ sub init_meta {
 
     my $class = $args{for_class}
                     or confess("Cannot call init_meta without specifying a for_class");
+
     my $base_class = $args{base_class} || 'Mouse::Object';
     my $metaclass  = $args{metaclass}  || 'Mouse::Meta::Class';
 
-    # make a subtype for each Mouse class
-    Mouse::Util::TypeConstraints::class_type($class)
-        unless Mouse::Util::TypeConstraints::find_type_constraint($class);
-
     my $meta = $metaclass->initialize($class);
 
     $meta->add_method(meta => sub{
@@ -133,18 +143,25 @@ sub init_meta {
     $meta->superclasses($base_class)
         unless $meta->superclasses;
 
+    # make a class type for each Mouse class
+    Mouse::Util::TypeConstraints::class_type($class)
+        unless Mouse::Util::TypeConstraints::find_type_constraint($class);
+
     return $meta;
 }
 
 
 1;
-
 __END__
 
 =head1 NAME
 
 Mouse - Moose minus the antlers
 
+=head1 VERSION
+
+This document describes Mouse version 0.37_05
+
 =head1 SYNOPSIS
 
     package Point;