X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FMooseX%2FStrictConstructor.pm;h=030230ff97dd0b56f23d7a3061fd45ee03f92b57;hb=2c89d023a1ddcafb64035d89061e12e791ec1938;hp=355db06576f19cb9dd60be8204fa383fb417660f;hpb=a0a267952defd3397de25969ff8c2d28c8f37a2c;p=gitmo%2FMooseX-StrictConstructor.git diff --git a/lib/MooseX/StrictConstructor.pm b/lib/MooseX/StrictConstructor.pm index 355db06..030230f 100644 --- a/lib/MooseX/StrictConstructor.pm +++ b/lib/MooseX/StrictConstructor.pm @@ -3,57 +3,38 @@ package MooseX::StrictConstructor; use strict; use warnings; -our $VERSION = '0.06_01'; -$VERSION = eval $VERSION; - -use Class::MOP (); -use Moose 0.5504 (); +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' ); -sub init_meta { - shift; - my %p = @_; - - Moose->init_meta(%p); - - my $caller = $p{for_class}; + my %class_meta = ( class => ['MooseX::StrictConstructor::Trait::Class'] ); - Moose::Util::MetaRole::apply_metaclass_roles - ( for_class => $caller, - constructor_class_roles => - ['MooseX::StrictConstructor::Role::Meta::Method::Constructor'], - ); + if ( $Moose::VERSION < 1.9900 ) { + require MooseX::StrictConstructor::Trait::Method::Constructor; + $class_meta{constructor} + = ['MooseX::StrictConstructor::Trait::Method::Constructor']; + } - Moose::Util::MetaRole::apply_base_class_roles - ( for_class => $caller, - roles => - [ 'MooseX::StrictConstructor::Role::Object' ], - ); - - return $caller->meta(); + Moose::Exporter->setup_import_methods( + class_metaroles => \%class_meta, + ); } 1; +# ABSTRACT: Make your object constructors blow up on unknown attributes + __END__ =pod -=head1 NAME - -MooseX::StrictConstructor - Make your object constructors blow up on unknown attributes - =head1 SYNOPSIS package My::Class; - use MooseX::StrictConstructor; # instead of use Moose + use Moose; + use MooseX::StrictConstructor; has 'size' => ...; @@ -64,10 +45,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 Cthrow_error()>. This is a great way +to catch small typos. =head2 Subverting Strictness @@ -89,10 +70,6 @@ you can delete it from the hash reference of parameters. } } -=head1 AUTHOR - -Dave Rolsky, C<< >> - =head1 BUGS Please report any bugs or feature requests to @@ -101,11 +78,4 @@ interface at L. I will be notified, and then you'll automatically be notified of progress on your bug as I make changes. -=head1 COPYRIGHT & LICENSE - -Copyright 2007-2008 Dave Rolsky, All Rights Reserved. - -This program is free software; you can redistribute it and/or modify -it under the same terms as Perl itself. - =cut