bump copyright year to 2010
[gitmo/Moose.git] / lib / Moose / Meta / Attribute / Native / Trait / Number.pm
index 9084a12..346e074 100644 (file)
@@ -1,7 +1,7 @@
 package Moose::Meta::Attribute::Native::Trait::Number;
 use Moose::Role;
 
-our $VERSION   = '1.11';
+our $VERSION   = '1.9900';
 $VERSION = eval $VERSION;
 our $AUTHORITY = 'cpan:STEVAN';
 
@@ -9,47 +9,6 @@ with 'Moose::Meta::Attribute::Native::Trait';
 
 sub _helper_type { 'Num' }
 
-# NOTE: we don't use the method provider for this module since many of
-# the names of the provided methods would conflict with keywords - SL
-
-has 'method_constructors' => (
-    is      => 'ro',
-    isa     => 'HashRef',
-    lazy    => 1,
-    default => sub {
-        return +{
-            set => sub {
-                my ( $attr, $reader, $writer ) = @_;
-                return sub { $writer->( $_[0], $_[1] ) };
-            },
-            add => sub {
-                my ( $attr, $reader, $writer ) = @_;
-                return sub { $writer->( $_[0], $reader->( $_[0] ) + $_[1] ) };
-            },
-            sub => sub {
-                my ( $attr, $reader, $writer ) = @_;
-                return sub { $writer->( $_[0], $reader->( $_[0] ) - $_[1] ) };
-            },
-            mul => sub {
-                my ( $attr, $reader, $writer ) = @_;
-                return sub { $writer->( $_[0], $reader->( $_[0] ) * $_[1] ) };
-            },
-            div => sub {
-                my ( $attr, $reader, $writer ) = @_;
-                return sub { $writer->( $_[0], $reader->( $_[0] ) / $_[1] ) };
-            },
-            mod => sub {
-                my ( $attr, $reader, $writer ) = @_;
-                return sub { $writer->( $_[0], $reader->( $_[0] ) % $_[1] ) };
-            },
-            abs => sub {
-                my ( $attr, $reader, $writer ) = @_;
-                return sub { $writer->( $_[0], abs( $reader->( $_[0] ) ) ) };
-            },
-        };
-    }
-);
-
 no Moose::Role;
 
 1;
@@ -66,11 +25,11 @@ Moose::Meta::Attribute::Native::Trait::Number - Helper trait for Num attributes
   use Moose;
 
   has 'integer' => (
-      traits    => ['Number'],
-      is        => 'ro',
-      isa       => 'Num',
-      default   => 5,
-      handles   => {
+      traits  => ['Number'],
+      is      => 'ro',
+      isa     => 'Num',
+      default => 5,
+      handles => {
           set => 'set',
           add => 'add',
           sub => 'sub',
@@ -82,62 +41,53 @@ Moose::Meta::Attribute::Native::Trait::Number - Helper trait for Num attributes
   );
 
   my $real = Real->new();
-  $real->add(5); # same as $real->integer($real->integer + 5);
-  $real->sub(2); # same as $real->integer($real->integer - 2);
+  $real->add(5);    # same as $real->integer($real->integer + 5);
+  $real->sub(2);    # same as $real->integer($real->integer - 2);
 
 =head1 DESCRIPTION
 
-This provides a simple numeric attribute, which supports most of the
-basic math operations.
+This trait provides native delegation methods for numbers. All of the
+operations correspond to arithmetic operations like addition or
+multiplication.
 
-=head1 PROVIDED METHODS
+=head1 DEFAULT TYPE
 
-It is important to note that all those methods do in place modification of the
-value stored in the attribute. These methods are implemented within this
-package.
+If you don't provide an C<isa> value for your attribute, it will default to
+C<Num>.
 
-=over 4
+=head1 PROVIDED METHODS
 
-=item B<set($value)>
+All of these methods modify the attribute's value in place. All methods return
+the new value.
 
-Alternate way to set the value.
+=over 4
 
-=item B<add($value)>
+=item * B<add($value)>
 
 Adds the current value of the attribute to C<$value>.
 
-=item B<sub($value)>
+=item * B<sub($value)>
 
 Subtracts C<$value> from the current value of the attribute.
 
-=item B<mul($value)>
+=item * B<mul($value)>
 
 Multiplies the current value of the attribute by C<$value>.
 
-=item B<div($value)>
+=item * B<div($value)>
 
 Divides the current value of the attribute by C<$value>.
 
-=item B<mod($value)>
+=item * B<mod($value)>
 
 Returns the current value of the attribute modulo C<$value>.
 
-=item B<abs>
+=item * B<abs>
 
 Sets the current value of the attribute to its absolute value.
 
 =back
 
-=head1 METHODS
-
-=over 4
-
-=item B<meta>
-
-=item B<method_constructors>
-
-=back
-
 =head1 BUGS
 
 See L<Moose/BUGS> for details on reporting bugs.
@@ -148,7 +98,7 @@ Robert Boone
 
 =head1 COPYRIGHT AND LICENSE
 
-Copyright 2007-2009 by Infinity Interactive, Inc.
+Copyright 2007-2010 by Infinity Interactive, Inc.
 
 L<http://www.iinteractive.com>