Ricardo SIGNES > MooseX-SetOnce > MooseX::SetOnce

Download:
MooseX-SetOnce-0.200002.tar.gz

Dependencies

Annotate this POD

Website

View/Report Bugs
Module Version: 0.200002   Source  

NAME ^

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

VERSION ^

version 0.200002

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>

COPYRIGHT AND LICENSE ^

This software is copyright (c) 2013 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.

syntax highlighting: