logo
Free, unlimited AI code reviews that run on commit
git-lrc git-lrc GitHub Install Now We'd appreciate a star git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt

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

Author

       Ricardo SIGNES <rjbs@cpan.org>

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.

Name

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

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!

Version

       version 0.200002

See Also