1 package MooseX::AttributeHelpers::Number;
3 use Moose::Util::TypeConstraints;
6 our $AUTHORITY = 'cpan:STEVAN';
8 extends 'MooseX::AttributeHelpers::Base';
10 sub helper_type { 'Num' }
12 has '+method_constructors' => (
17 return sub { $attr->set_value($_[0], $_[1]) };
21 return sub { $attr->set_value($_[0], $attr->get_value($_[0]) + $_[1]) };
25 return sub { $attr->set_value($_[0], $attr->get_value($_[0]) - $_[1]) };
29 return sub { $attr->set_value($_[0], $attr->get_value($_[0]) * $_[1]) };
33 return sub { $attr->set_value($_[0], $attr->get_value($_[0]) / $_[1]) };
37 return sub { $attr->set_value($_[0], abs($attr->get_value($_[0]) % $_[1])) };
41 return sub { $attr->set_value($_[0], abs($attr->get_value($_[0])) ) };
48 no Moose::Util::TypeConstraints;
50 # register the alias ...
51 package Moose::Meta::Attribute::Custom::Number;
52 sub register_implementation { 'MooseX::AttributeHelpers::Number' }
60 MooseX::AttributeHelpers::Number
68 metaclass => 'Number',
83 my $real = Real->new();
84 $real->add(5); # same as $real->integer($real->integer + 5);
85 $real->sub(2); # same as $real->integer($real->integer - 2);
93 All complex software has bugs lurking in it, and this module is no
94 exception. If you find a bug please either email me, or add the bug
99 Stevan Little E<lt>stevan@iinteractive.comE<gt>
101 =head1 COPYRIGHT AND LICENSE
103 Copyright 2007 by Infinity Interactive, Inc.
105 L<http://www.iinteractive.com>
107 This library is free software; you can redistribute it and/or modify
108 it under the same terms as Perl itself.