X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?p=gitmo%2FMooseX-StrictConstructor.git;a=blobdiff_plain;f=lib%2FMooseX%2FStrictConstructor.pm;h=926e780ac58950b4b5ed42fe191c38db7f5dc66e;hp=ce01b347135845864915ae7141ee7aeded26038d;hb=b40503314ef6f2cf6f88378e9f35d7a91866b277;hpb=5a0d49213abe7095b652c725efaad35cff6e24b9 diff --git a/lib/MooseX/StrictConstructor.pm b/lib/MooseX/StrictConstructor.pm index ce01b34..926e780 100644 --- a/lib/MooseX/StrictConstructor.pm +++ b/lib/MooseX/StrictConstructor.pm @@ -3,50 +3,31 @@ package MooseX::StrictConstructor; use strict; use warnings; -our $VERSION = '0.08'; -$VERSION = eval $VERSION; - -use Moose 0.74 (); +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(); - -sub init_meta { - shift; - my %p = @_; - Moose->init_meta(%p); +use MooseX::StrictConstructor::Trait::Class; +use MooseX::StrictConstructor::Trait::Method::Constructor;; - my $caller = $p{for_class}; +my %metaroles = ( + class => ['MooseX::StrictConstructor::Trait::Class'], +); - Moose::Util::MetaRole::apply_metaclass_roles( - for_class => $caller, - constructor_class_roles => - ['MooseX::StrictConstructor::Role::Meta::Method::Constructor'], - ); +$metaroles{constructor} + = ['MooseX::StrictConstructor::Trait::Method::Constructor'] + if $Moose::VERSION >= 1.9900; - 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 => \%metaroles ); 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; @@ -64,9 +45,9 @@ MooseX::StrictConstructor - Make your object constructors blow up on unknown att =head1 DESCRIPTION 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. +constructor is called with an attribute init argument that your class does not +declare, then it calls C<< Moose->throw_error() >>. This is a great way to +catch small typos. =head2 Subverting Strictness @@ -88,10 +69,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 @@ -100,11 +77,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