Finish renaming Mouse::TypeRegistry to Mouse::Util::TypeConstraints
[gitmo/Mouse.git] / lib / MouseX / Types.pm
index ada0e75..68003a8 100644 (file)
@@ -2,7 +2,8 @@ package MouseX::Types;
 use strict;
 use warnings;
 
-require Mouse::TypeRegistry;
+require Mouse::Util::TypeConstraints;
+use MouseX::Types::TypeDecorator;
 
 sub import {
     my $class  = shift;
@@ -16,19 +17,22 @@ sub import {
     if (defined $args{'-declare'} && ref($args{'-declare'}) eq 'ARRAY') {
         my $storage = $caller->type_storage($caller);
         for my $name (@{ $args{'-declare'} }) {
-            $storage->{$name} = "$caller\::$name";
-            *{"$caller\::$name"} = sub () { $caller->type_storage->{$name} };
+            my $obj = $storage->{$name} = "$caller\::$name";
+            *{"$caller\::$name"} = sub () { $obj };
         }
     }
 
-    return Mouse::TypeRegistry->import( callee => $caller );
+    return Mouse::Util::TypeConstraints->import( callee => $caller );
 }
 
 sub _import {
     my($type_class, $pkg, @types) = @_;
     no strict 'refs';
     for my $name (@types) {
-        *{"$pkg\::$name"} = sub () { $type_class->type_storage->{$name} }
+        my $obj = $type_class->type_storage->{$name};
+        $obj = $type_class->type_storage->{$name} = MouseX::Types::TypeDecorator->new($obj)
+            unless ref($obj);
+        *{"$pkg\::$name"} = sub () { $obj };
     }
 }
 
@@ -44,7 +48,7 @@ sub _import {
 
 =head1 NAME
 
-Mouse - Organise your Mouse types in libraries
+MouseX::Types - Organise your Mouse types in libraries
 
 =head1 SYNOPSIS