use newer MetaRole API and require Moose 0.94
[gitmo/MooseX-StrictConstructor.git] / lib / MooseX / StrictConstructor.pm
index c2bdb35..5fb6d8c 100644 (file)
@@ -3,20 +3,18 @@ package MooseX::StrictConstructor;
 use strict;
 use warnings;
 
-our $VERSION = '0.06_01';
+our $VERSION = '0.08';
 $VERSION = eval $VERSION;
 
-use Class::MOP ();
-use Moose ();
+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( also => 'Moose' );
+Moose::Exporter->setup_import_methods();
 
-sub init_meta
-{
+sub init_meta {
     shift;
     my %p = @_;
 
@@ -24,17 +22,19 @@ sub init_meta
 
     my $caller = $p{for_class};
 
-    Moose::Util::MetaRole::apply_metaclass_roles
-        ( for_class => $caller,
-          constructor_class_roles =>
-          ['MooseX::StrictConstructor::Role::Meta::Method::Constructor'],
-        );
+    Moose::Util::MetaRole::apply_metaroles(
+        for             => $caller,
+        class_metaroles => {
+            constructor => [
+                'MooseX::StrictConstructor::Role::Meta::Method::Constructor']
+        },
+    );
 
-    Moose::Util::MetaRole::apply_base_class_roles
-        ( for_class => $caller,
-          roles =>
-          [ 'MooseX::StrictConstructor::Role::Object' ],
-        );
+    Moose::Util::MetaRole::apply_base_class_roles(
+        for => $caller,
+        roles =>
+            ['MooseX::StrictConstructor::Role::Object'],
+    );
 
     return $caller->meta();
 }
@@ -53,7 +53,8 @@ MooseX::StrictConstructor - Make your object constructors blow up on unknown att
 
     package My::Class;
 
-    use MooseX::StrictConstructor; # instead of use Moose
+    use Moose;
+    use MooseX::StrictConstructor;
 
     has 'size' => ...;
 
@@ -64,10 +65,10 @@ MooseX::StrictConstructor - Make your object constructors blow up on unknown att
 
 =head1 DESCRIPTION
 
-Using this class to load Moose instead of just loading using Moose
-itself 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 to catch small typos.
+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
+to catch small typos.
 
 =head2 Subverting Strictness