1 package MooseX::AttributeHelpers::Number;
5 our $AUTHORITY = 'cpan:STEVAN';
7 extends 'MooseX::AttributeHelpers::Base';
9 sub helper_type { 'Num' }
11 has '+method_constructors' => (
16 return sub { $attr->set_value($_[0], $_[1]) };
20 return sub { $attr->set_value($_[0], $attr->get_value($_[0]) + $_[1]) };
24 return sub { $attr->set_value($_[0], $attr->get_value($_[0]) - $_[1]) };
28 return sub { $attr->set_value($_[0], $attr->get_value($_[0]) * $_[1]) };
32 return sub { $attr->set_value($_[0], $attr->get_value($_[0]) / $_[1]) };
36 return sub { $attr->set_value($_[0], $attr->get_value($_[0]) % $_[1]) };
40 return sub { $attr->set_value($_[0], abs($attr->get_value($_[0])) ) };
48 # register the alias ...
49 package Moose::Meta::Attribute::Custom::Number;
50 sub register_implementation { 'MooseX::AttributeHelpers::Number' }
58 MooseX::AttributeHelpers::Number
64 use MooseX::AttributeHelpers;
67 metaclass => 'Number',
82 my $real = Real->new();
83 $real->add(5); # same as $real->integer($real->integer + 5);
84 $real->sub(2); # same as $real->integer($real->integer - 2);
88 This provides a simple numeric attribute, which supports most of the
89 basic math operations.
97 =item B<method_constructors>
103 All complex software has bugs lurking in it, and this module is no
104 exception. If you find a bug please either email me, or add the bug
111 =head1 COPYRIGHT AND LICENSE
113 Copyright 2007 by Infinity Interactive, Inc.
115 L<http://www.iinteractive.com>
117 This library is free software; you can redistribute it and/or modify
118 it under the same terms as Perl itself.