fix autobox loading approach
[gitmo/Moose-Autobox.git] / lib / Moose / Autobox.pm
index 7899bb7..fc445af 100644 (file)
@@ -7,10 +7,12 @@ use warnings;
 use Carp        qw(confess);
 use Scalar::Util ();
 
-our $VERSION = '0.03';
+our $VERSION = '0.04';
 
 use base 'autobox';
 
+use Moose::Autobox::Undef;
+
 sub import {
     (shift)->SUPER::import(
         DEFAULT => 'Moose::Autobox::',
@@ -28,34 +30,42 @@ sub mixin_additional_role {
 {
                         
     package Moose::Autobox::SCALAR;
-    # NOTE:
-    # this doesnt make sense, but 
-    # I need to prevent Moose from 
-    # assiging to @ISA
-    use base 'UNIVERSAL';
-    use Moose;
-    with 'Moose::Autobox::Scalar';
+
+    use Moose::Autobox::Scalar;
+
+    use metaclass 'Moose::Meta::Class';
+
+    __PACKAGE__->meta->_apply_all_roles('Moose::Autobox::Scalar');
 
     *does = \&Moose::Object::does;
 
     package Moose::Autobox::ARRAY;
-    use base 'UNIVERSAL';
-    use Moose;
-    with 'Moose::Autobox::Array';
+
+    use Moose::Autobox::Array;
+
+    use metaclass 'Moose::Meta::Class';
+
+    __PACKAGE__->meta->_apply_all_roles('Moose::Autobox::Array');
 
     *does = \&Moose::Object::does;
 
     package Moose::Autobox::HASH;
-    use base 'UNIVERSAL';
-    use Moose;
-    with 'Moose::Autobox::Hash';
+
+    use Moose::Autobox::Hash;
+
+    use metaclass 'Moose::Meta::Class';
+
+    __PACKAGE__->meta->_apply_all_roles('Moose::Autobox::Hash');
 
     *does = \&Moose::Object::does;
 
     package Moose::Autobox::CODE;
-    use base 'UNIVERSAL';
-    use Moose;
-    with 'Moose::Autobox::Code';  
+
+    use Moose::Autobox::Code;
+
+    use metaclass 'Moose::Meta::Class';
+
+    __PACKAGE__->meta->_apply_all_roles('Moose::Autobox::Code');
 
     *does = \&Moose::Object::does;            
  
@@ -69,12 +79,11 @@ __END__
 
 =head1 NAME 
 
-Moose::Autobox - Autoboxed for her pleasure
+Moose::Autobox - Ruby ain't got nothin on us
 
 =head1 SYNOPOSIS
 
   use Moose::Autobox;
-  use autobox;
   
   print 'Print squares from 1 to 10 : ';
   print [ 1 .. 10 ]->map(sub { $_ * $_ })->join(', ');
@@ -152,9 +161,17 @@ to cpan-RT.
 
 Stevan Little E<lt>stevan@iinteractive.comE<gt>
 
+B<with contributions from:>
+
+Anders (Debolaz) Nor Berle
+
+Matt (mst) Trout
+
+renormalist
+
 =head1 COPYRIGHT AND LICENSE
 
-Copyright 2006 by Infinity Interactive, Inc.
+Copyright 2006-2007 by Infinity Interactive, Inc.
 
 L<http://www.iinteractive.com>