MooseX::SetOnce.3pm

Langue: en

Version: 2010-02-16 (ubuntu - 24/10/10)

Section: 3 (Bibliothèques de fonctions)

NAME

MooseX::SetOnce - write-once, read-many attributes for Moose

VERSION

version 0.100471

SYNOPSIS

Add the ``SetOnce'' trait to attributes:
   package Class;
   use Moose;
   use MooseX::SetOnce;
 
   has some_attr => (
     is     => 'rw',
     traits => [ qw(SetOnce) ],
   );
 
 

...and then you can only set them once:

   my $object = Class->new;
 
   $object->some_attr(10);  # works fine
   $object->some_attr(20);  # throws an exception: it's already set!
 
 

DESCRIPTION

The 'SetOnce' attribute lets your class have attributes that are not lazy and not set, but that cannot be altered once set.

The logic is very simple: if you try to alter the value of an attribute with the SetOnce trait, either by accessor or writer, and the attribute has a value, it will throw an exception.

If the attribute has a clearer, you may clear the attribute and set it again.

AUTHOR

   Ricardo SIGNES <rjbs@cpan.org>
 
 
This software is copyright (c) 2010 by Ricardo SIGNES.

This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.