MooseX::StrictConstructor.3pm

Langue: en

Version: 2010-09-09 (fedora - 01/12/10)

Section: 3 (Bibliothèques de fonctions)

NAME

MooseX::StrictConstructor - Make your object constructors blow up on unknown attributes

VERSION

version 0.11

SYNOPSIS

     package My::Class;
 
     use Moose;
     use MooseX::StrictConstructor;
 
     has 'size' => ...;
 
     # then later ...
 
     # this blows up because color is not a known attribute
     My::Class->new( size => 5, color => 'blue' );
 
 

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.

Subverting Strictness

You may find yourself wanting to have your constructor accept a parameter which does not correspond to an attribute.

In that case, you'll probably also be writing a "BUILD()" or "BUILDARGS()" method to deal with that parameter. In a "BUILDARGS()" method, you can simply make sure that this parameter is not included in the hash reference you return. Otherwise, in a "BUILD()" method, you can delete it from the hash reference of parameters.

   sub BUILD {
       my $self   = shift;
       my $params = shift;
 
       if ( delete $params->{do_something} ) {
           ...
       }
   }
 
 

BUGS

Please report any bugs or feature requests to "bug-moosex-strictconstructor@rt.cpan.org", or through the web interface at <http://rt.cpan.org>. I will be notified, and then you'll automatically be notified of progress on your bug as I make changes.

AUTHOR

   Dave Rolsky <autarch@urth.org>
 
 
This software is Copyright (c) 2010 by Dave Rolsky.

This is free software, licensed under:

   The Artistic License 2.0