These are the words that I manifest.
[gitmo/MooseX-UndefTolerant.git] / lib / MooseX / UndefTolerant.pm
index 92bd492..f25b684 100644 (file)
@@ -6,7 +6,7 @@ use Moose::Exporter;
 use MooseX::UndefTolerant::Attribute;
 use MooseX::UndefTolerant::Constructor;
 
-our $VERSION = '0.04';
+our $VERSION = '0.07';
 
 Moose::Exporter->setup_import_methods(
     class_metaroles => { 
@@ -60,7 +60,7 @@ Or, if you only want one attribute to have this behaviour:
 
 Loading this module in your L<Moose> class makes initialization of your
 attributes tolerant of undef.  If you specify the value of undef to any of
-the attributes they will not be initialized.  Effectively behaving as if you
+the attributes they will not be initialized, effectively behaving as if you
 had not provided a value at all.
 
 =head1 MOTIVATION
@@ -86,30 +86,26 @@ Maybe[Str] and I still want my predicate (C<has_foo>) to work.  The only
 real solution was:
 
   if(defined($foo)) {
-    $class = My:CLass->new(foo => $foo, bar => 123);
+    $class = My:Class->new(foo => $foo, bar => 123);
   } else {
-    $class = My:CLass->new(bar => 123);
+    $class = My:Class->new(bar => 123);
   }
 
 Or some type of codemulch using ternarys.  This module allows you to make
 your attributes more tolerant of undef so that you can keep the first
 example: have your cake and eat it too!
 
-=head1 USE IN YOUR MOOSE EXPORTER
+=head1 PER ATTRIBUTE
 
-If you already have a custom Moose exporter class and you want this
-behaviour everywhere, you can add these roles there with this call, in
-your C<init_meta> routine:
+See L<MooseX::UndefTolerant::Attribute>.
 
-  Moose::Util::MetaRole::apply_metaroles(
-    class_metaroles => { 
-      attribute => [ 'MooseX::UndefTolerant::Attribute' ],
-      constructor => [ 'MooseX::UndefTolerant::Constructor' ],
-    },
-    for => $args{for_class},
-  );
+=head1 CAVEATS
 
-=head1 PER ATTRIBUTE
+This extension does not currently work in immutable classes when applying the
+trait to some (but not all) attributes in the class. This is because the
+inlined constructor initialization code currently lives in
+L<Moose::Meta::Method::Constructor>, not L<Moose::Meta::Attribute>. The good
+news is that this is expected to be changing shortly.
 
 =head1 AUTHOR