update to work with new moose
Jesse Luehrs [Fri, 19 Nov 2010 00:11:44 +0000 (18:11 -0600)]
Changes
dist.ini
lib/MooseX/StrictConstructor.pm
lib/MooseX/StrictConstructor/Role/Meta/Class.pm [moved from lib/MooseX/StrictConstructor/Role/Meta/Method/Constructor.pm with 51% similarity]

diff --git a/Changes b/Changes
index d4f955e..d370017 100644 (file)
--- a/Changes
+++ b/Changes
@@ -1,3 +1,5 @@
+- Updated to work with new Moose
+
 0.12     2010-10-29
 
 - Switched tests to use Test::Fatal instead of Test::Exception.
index 05f454a..69d4810 100644 (file)
--- a/dist.ini
+++ b/dist.ini
@@ -29,7 +29,7 @@ repository.type   = git
 [CheckChangeLog]
 
 [Prereqs]
-Moose = 0.94
+Moose = 1.9900
 
 [Prereqs / TestRequires]
 Test::Fatal = 0
index 28c71e7..2f2367a 100644 (file)
@@ -7,12 +7,12 @@ use Moose 0.94 ();
 use Moose::Exporter;
 use Moose::Util::MetaRole;
 use MooseX::StrictConstructor::Role::Object;
-use MooseX::StrictConstructor::Role::Meta::Method::Constructor;
+use MooseX::StrictConstructor::Role::Meta::Class;
 
 Moose::Exporter->setup_import_methods(
     class_metaroles => {
-        constructor =>
-            ['MooseX::StrictConstructor::Role::Meta::Method::Constructor']
+        class =>
+            ['MooseX::StrictConstructor::Role::Meta::Class']
     },
     base_class_roles => ['MooseX::StrictConstructor::Role::Object'],
 );
@@ -1,4 +1,4 @@
-package MooseX::StrictConstructor::Role::Meta::Method::Constructor;
+package MooseX::StrictConstructor::Role::Meta::Class;
 
 use strict;
 use warnings;
@@ -8,31 +8,27 @@ use Carp ();
 
 use Moose::Role;
 
-around '_generate_BUILDALL' => sub {
+around '_inline_BUILDALL' => sub {
     my $orig = shift;
     my $self = shift;
 
-    my $source = $self->$orig();
-    $source .= ";\n" if $source;
+    my @source = $self->$orig();
 
     my @attrs = (
         '__INSTANCE__ => 1,',
         map { B::perlstring($_) . ' => 1,' }
         grep {defined}
-        map  { $_->init_arg() } @{ $self->_attributes() }
+        map  { $_->init_arg() } $self->get_all_attributes()
     );
 
-    $source .= <<"EOF";
-my \%attrs = (@attrs);
-
-my \@bad = sort grep { ! \$attrs{\$_} }  keys \%{ \$params };
-
-if (\@bad) {
-    Carp::confess "Found unknown attribute(s) passed to the constructor: \@bad";
-}
-EOF
-
-    return $source;
+    return (
+        @source,
+        'my %attrs = (' . join(' ', @attrs) . ');',
+        'my @bad = sort grep { !$attrs{$_} } keys %{ $params };',
+        'if (@bad) {',
+            'Carp::confess "Found unknown attribute(s) passed to the constructor: @bad";',
+        '}',
+    );
 };
 
 no Moose::Role;
@@ -57,9 +53,8 @@ __END__
 
 =head1 DESCRIPTION
 
-This role simply wraps C<_generate_BUILDALL()> (from
-C<Moose::Meta::Method::Constructor>) so that immutable classes have a
+This role simply wraps C<_inline_BUILDALL()> (from
+C<Moose::Meta::Class>) so that immutable classes have a
 strict constructor.
 
 =cut
-