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
66 metaclass => 'Number',
81 my $real = Real->new();
82 $real->add(5); # same as $real->integer($real->integer + 5);
83 $real->sub(2); # same as $real->integer($real->integer - 2);
91 All complex software has bugs lurking in it, and this module is no
92 exception. If you find a bug please either email me, or add the bug
99 =head1 COPYRIGHT AND LICENSE
101 Copyright 2007 by Infinity Interactive, Inc.
103 L<http://www.iinteractive.com>
105 This library is free software; you can redistribute it and/or modify
106 it under the same terms as Perl itself.