Changes for 0.14
[gitmo/MooseX-StrictConstructor.git] / lib / MooseX / StrictConstructor.pm
index 28c71e7..e7cfda2 100644 (file)
@@ -7,15 +7,28 @@ use Moose 0.94 ();
 use Moose::Exporter;
 use Moose::Util::MetaRole;
 use MooseX::StrictConstructor::Role::Object;
-use MooseX::StrictConstructor::Role::Meta::Method::Constructor;
 
-Moose::Exporter->setup_import_methods(
-    class_metaroles => {
-        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;
 
@@ -43,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