Forgot to add a couple of files inthe last commit.
[gitmo/MooseX-AttributeHelpers.git] / lib / MooseX / AttributeHelpers / Number.pm
CommitLineData
565fe238 1package MooseX::AttributeHelpers::Number;
2use Moose;
8683383a 3use MooseX::AttributeHelpers::Sugar;
4
5extends 'MooseX::AttributeHelpers::Base';
565fe238 6
c91a1347 7our $VERSION = '0.02';
565fe238 8our $AUTHORITY = 'cpan:STEVAN';
9
8683383a 10define_attribute_helper (
11 helper_type => 'Num',
12 method_provider => 'MooseX::AttributeHelpers::MethodProvider::Number',
13 shortcut => 'Number',
565fe238 14);
565fe238 15
8683383a 16no Moose;
17no MooseX::AttributeHelpers::Sugar;
565fe238 18
191;
20
8683383a 21__END__
22
565fe238 23=pod
24
25=head1 NAME
26
27MooseX::AttributeHelpers::Number
28
29=head1 SYNOPSIS
30
31 package Real;
5431dff2 32 use Moose;
33 use MooseX::AttributeHelpers;
34
35 has 'integer' => (
36 metaclass => 'Number',
37 is => 'ro',
38 isa => 'Int',
39 default => sub { 5 },
40 provides => {
41 set => 'set',
42 add => 'add',
43 sub => 'sub',
44 mul => 'mul',
45 div => 'div',
46 mod => 'mod',
47 abs => 'abs',
48 }
49 );
565fe238 50
51 my $real = Real->new();
52 $real->add(5); # same as $real->integer($real->integer + 5);
53 $real->sub(2); # same as $real->integer($real->integer - 2);
54
55=head1 DESCRIPTION
56
5431dff2 57This provides a simple numeric attribute, which supports most of the
58basic math operations.
59
8683383a 60=head1 METHOD PROVIDER
c91a1347 61
8683383a 62The methods for this metaclass are provided by
63L<MooseX::AttributeHelpers::MethodProvider::String>.
c91a1347 64
565fe238 65=head1 BUGS
66
67All complex software has bugs lurking in it, and this module is no
68exception. If you find a bug please either email me, or add the bug
69to cpan-RT.
70
71=head1 AUTHOR
72
8c651099 73Robert Boone
565fe238 74
75=head1 COPYRIGHT AND LICENSE
76
99c62fb8 77Copyright 2007-2008 by Infinity Interactive, Inc.
565fe238 78
79L<http://www.iinteractive.com>
80
81This library is free software; you can redistribute it and/or modify
82it under the same terms as Perl itself.
83
ae2c330e 84=cut