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

Moose::Meta::Attribute::Native::Trait::Number - Helper trait for Num attributes

Authors

       •   Stevan Little <stevan@cpan.org>

       •   Dave Rolsky <autarch@urth.org>

       •   Jesse Luehrs <doy@cpan.org>

       •   Shawn M Moore <sartak@cpan.org>

       •   יובל קוג'מן (Yuval Kogman) <nothingmuch@woobling.org>

       •   Karen Etheridge <ether@cpan.org>

       •   Florian Ragwitz <rafl@debian.org>

       •   Hans Dieter Pearcey <hdp@cpan.org>

       •   Chris Prather <chris@prather.org>

       •   Matt S Trout <mstrout@cpan.org>

Bugs

       See "BUGS" in Moose for details on reporting bugs.

Default Type

       If you don't provide an "isa" value for your attribute, it will default to "Num".

Description

       This trait provides native delegation methods for numbers. All of the operations correspond to arithmetic
       operations like addition or multiplication.

Name

       Moose::Meta::Attribute::Native::Trait::Number - Helper trait for Num attributes

Provided Methods

       All of these methods modify the attribute's value in place. All methods return the new value.

       •   add($value)

           Adds the current value of the attribute to $value.

       •   sub($value)

           Subtracts $value from the current value of the attribute.

       •   mul($value)

           Multiplies the current value of the attribute by $value.

       •   div($value)

           Divides the current value of the attribute by $value.

       •   mod($value)

           Returns the current value of the attribute modulo $value.

       •   abs

           Sets the current value of the attribute to its absolute value.

Synopsis

         package Real;
         use Moose;

         has 'integer' => (
             traits  => ['Number'],
             is      => 'ro',
             isa     => 'Num',
             default => 5,
             handles => {
                 set => 'set',
                 add => 'add',
                 sub => 'sub',
                 mul => 'mul',
                 div => 'div',
                 mod => 'mod',
                 abs => 'abs',
             },
         );

         my $real = Real->new();
         $real->add(5);    # same as $real->integer($real->integer + 5);
         $real->sub(2);    # same as $real->integer($real->integer - 2);

Version

       version 2.2207

See Also