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::AttributeHelpers::Trait::Bool - simple boolean attribute

Author

       Stevan Little <stevan@iinteractive.com>

       Jason May

Description

       This provides a simple boolean attribute, which supports most of the basic math operations.

Methods

metahelper_typemethod_constructorshas_method_providermethod_provider

Name

       MooseX::AttributeHelpers::Trait::Bool - simple boolean attribute

Provided Methods

       It  is  important  to  note  that  all  those methods do in place modification of the value stored in the
       attribute.

       set Sets the value to 1.

       unset
           Set the value to 0.

       toggle
           Toggle the value. If it's true, set to false, and vice versa.

       not Equivalent of 'not $value'.

Support

       Bugs        may        be        submitted        through        the        RT        bug         tracker
       <https://rt.cpan.org/Public/Dist/Display.html?Name=MooseX-AttributeHelpers>                           (or
       bug-MooseX-AttributeHelpers@rt.cpan.org <mailto:bug-MooseX-AttributeHelpers@rt.cpan.org>).

       There   is   also   a   mailing    list    available    for    users    of    this    distribution,    at
       <http://lists.perl.org/list/moose.html>.

       There  is  also  an  irc  channel available for users of this distribution, at "#moose" on "irc.perl.org"
       <irc://irc.perl.org/#moose>.

Synopsis

         package Room;
         use Moose;
         use MooseX::AttributeHelpers;

         has 'is_lit' => (
             metaclass => 'Bool',
             is        => 'rw',
             isa       => 'Bool',
             default   => sub { 0 },
             provides  => {
                 set     => 'illuminate',
                 unset   => 'darken',
                 toggle  => 'flip_switch',
                 not     => 'is_dark'
             }
         );

         my $room = Room->new();
         $room->illuminate;     # same as $room->is_lit(1);
         $room->darken;         # same as $room->is_lit(0);
         $room->flip_switch;    # same as $room->is_lit(not $room->is_lit);
         return $room->is_dark; # same as !$room->is_lit

Version

       version 0.25

See Also