make github the primary repository
[gitmo/Moose.git] / lib / Moose / Meta / TypeCoercion.pm
index 8b73ca1..6ecafba 100644 (file)
@@ -8,28 +8,27 @@ use metaclass;
 use Moose::Meta::Attribute;
 use Moose::Util::TypeConstraints ();
 
-our $VERSION   = '0.75_01';
-$VERSION = eval $VERSION;
-our $AUTHORITY = 'cpan:STEVAN';
-
 __PACKAGE__->meta->add_attribute('type_coercion_map' => (
     reader  => 'type_coercion_map',
-    default => sub { [] }
+    default => sub { [] },
+    Class::MOP::_definition_context(),
 ));
 
 __PACKAGE__->meta->add_attribute(
     Moose::Meta::Attribute->new('type_constraint' => (
         reader   => 'type_constraint',
-        weak_ref => 1
+        weak_ref => 1,
+        Class::MOP::_definition_context(),
     ))
 );
 
 # private accessor
 __PACKAGE__->meta->add_attribute('compiled_type_coercion' => (
-    accessor => '_compiled_type_coercion'
+    accessor => '_compiled_type_coercion',
+    Class::MOP::_definition_context(),
 ));
 
-sub new { 
+sub new {
     my $class = shift;
     my $self  = Class::MOP::class_of($class)->new_object(@_);
     $self->compile_type_coercion;
@@ -49,22 +48,22 @@ sub compile_type_coercion {
             Moose->throw_error("Could not find the type constraint ($constraint_name) to coerce from");
         }
 
-        push @coercions => [ 
-            $type_constraint->_compiled_type_constraint, 
-            $action 
+        push @coercions => [
+            $type_constraint->_compiled_type_constraint,
+            $action
         ];
     }
-    $self->_compiled_type_coercion(sub { 
+    $self->_compiled_type_coercion(sub {
         my $thing = shift;
         foreach my $coercion (@coercions) {
             my ($constraint, $converter) = @$coercion;
             if ($constraint->($thing)) {
-                local $_ = $thing;                
+                local $_ = $thing;
                 return $converter->($thing);
             }
         }
         return $thing;
-    });    
+    });
 }
 
 sub has_coercion_for_type {
@@ -75,12 +74,12 @@ sub has_coercion_for_type {
 
 sub add_type_coercions {
     my ($self, @new_coercion_map) = @_;
-        
-    my $coercion_map = $self->type_coercion_map;    
+
+    my $coercion_map = $self->type_coercion_map;
     my %has_coercion = @$coercion_map;
-    
+
     while (@new_coercion_map) {
-        my ($constraint_name, $action) = splice(@new_coercion_map, 0, 2);        
+        my ($constraint_name, $action) = splice(@new_coercion_map, 0, 2);
 
         if ( exists $has_coercion{$constraint_name} ) {
             require Moose;
@@ -89,7 +88,7 @@ sub add_type_coercions {
 
         push @{$coercion_map} => ($constraint_name, $action);
     }
-    
+
     # and re-compile ...
     $self->compile_type_coercion;
 }
@@ -99,14 +98,12 @@ sub coerce { $_[0]->_compiled_type_coercion->($_[1]) }
 
 1;
 
+# ABSTRACT: The Moose Type Coercion metaclass
+
 __END__
 
 =pod
 
-=head1 NAME
-
-Moose::Meta::TypeCoercion - The Moose Type Coercion metaclass
-
 =head1 DESCRIPTION
 
 A type coercion object is basically a mapping of one or more type
@@ -174,21 +171,6 @@ This will return a L<Class::MOP::Class> instance for this class.
 
 =head1 BUGS
 
-All complex software has bugs lurking in it, and this module is no 
-exception. If you find a bug please either email me, or add the bug
-to cpan-RT.
-
-=head1 AUTHOR
-
-Stevan Little E<lt>stevan@iinteractive.comE<gt>
-
-=head1 COPYRIGHT AND LICENSE
-
-Copyright 2006-2009 by Infinity Interactive, Inc.
-
-L<http://www.iinteractive.com>
-
-This library is free software; you can redistribute it and/or modify
-it under the same terms as Perl itself. 
+See L<Moose/BUGS> for details on reporting bugs.
 
 =cut