Changes for 0.14
[gitmo/MooseX-StrictConstructor.git] / lib / MooseX / StrictConstructor.pm
index e024686..e7cfda2 100644 (file)
@@ -7,17 +7,28 @@ use Moose 0.94 ();
 use Moose::Exporter;
 use Moose::Util::MetaRole;
 use MooseX::StrictConstructor::Role::Object;
-use MooseX::StrictConstructor::Role::Meta::Class;
-use MooseX::StrictConstructor::Role::Meta::Method::Constructor;
-
-Moose::Exporter->setup_import_methods(
-    class_metaroles => {
-        ($Moose::VERSION >= 1.9900
-            ? (class => ['MooseX::StrictConstructor::Role::Meta::Class'])
-            : (constructor => ['MooseX::StrictConstructor::Role::Meta::Method::Constructor'])),
-    },
-    base_class_roles => ['MooseX::StrictConstructor::Role::Object'],
-);
+
+{
+    my %class_meta;
+
+    if ( $Moose::VERSION < 1.9900 ) {
+        require MooseX::StrictConstructor::Trait::Method::Constructor;
+        %class_meta = (
+            constructor => [
+                'MooseX::StrictConstructor::Trait::Method::Constructor']
+        );
+    }
+    else {
+        require MooseX::StrictConstructor::Trait::Class;
+        %class_meta
+            = ( class => ['MooseX::StrictConstructor::Trait::Class'] );
+    }
+
+    Moose::Exporter->setup_import_methods(
+            class_metaroles  => \%class_meta,
+            base_class_roles => ['MooseX::StrictConstructor::Role::Object'],
+    );
+}
 
 1;
 
@@ -45,7 +56,7 @@ __END__
 
 Simply loading this module makes your constructors "strict". If your
 constructor is called with an attribute init argument that your class
-does not declare, then it calls "Carp::confess()". This is a great way
+does not declare, then it calls C<Moose->throw_error()>. This is a great way
 to catch small typos.
 
 =head2 Subverting Strictness