From: Karen Etheridge Date: Sun, 23 Sep 2012 19:45:05 +0000 (-0700) Subject: generate the README from pod X-Git-Tag: v0.18~5 X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=commitdiff_plain;h=50d57524fd7dc381e74fd09d473b137c06f4fc4c;p=gitmo%2FMooseX-UndefTolerant.git generate the README from pod --- diff --git a/README b/README deleted file mode 100644 index c88c928..0000000 --- a/README +++ /dev/null @@ -1,107 +0,0 @@ -NAME - MooseX::UndefTolerant - Make your attribute(s) tolerant to undef - initialization - -SYNOPSIS - package My::Class; - - use Moose; - use MooseX::UndefTolerant; - - has 'name' => ( - is => 'ro', - isa => 'Str', - predicate => 'has_name' - ); - - # Meanwhile, under the city... - - # Doesn't explode - my $class = My::Class->new(name => undef); - $class->has_name # False! - - Or, if you only want one attribute to have this behaviour: - - package My:Class; - use Moose; - - use MooseX::UndefTolerant::Attribute; - - has 'bar' => ( - traits => [ qw(MooseX::UndefTolerant::Attribute)], - is => 'ro', - isa => 'Num', - predicate => 'has_bar' - ); - -DESCRIPTION - Loading this module in your 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 had not provided a value at all. - -MOTIVATION - I often found myself in this quandry: - - package My:Class; - use Moose; - - has 'foo' => ( - is => 'ro', - isa => 'Str', - ); - - # ... then - - my $foo = ... # get the param from something - - my $class = My:Class->new(foo => $foo, bar => 123); - - What if foo is undefined? I didn't want to change my attribute to be - Maybe[Str] and I still want my predicate ("has_foo") to work. The only - real solution was: - - if(defined($foo)) { - $class = My:Class->new(foo => $foo, bar => 123); - } else { - $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! - -PER ATTRIBUTE - See MooseX::UndefTolerant::Attribute. - -CAVEATS - 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 Moose::Meta::Method::Constructor, not Moose::Meta::Attribute. The - good news is that this is expected to be changing shortly. - -ACKNOWLEDGEMENTS - Many thanks to the crew in #moose who talked me through this module: - - Hans Dieter Pearcey (confound) - - Jesse Luehrs (doy) - - Tomas Doran (t0m) - - Dylan Hardison (dylan) - - Jay Shirley (jshirley) - - Mike Eldridge (diz) - -AUTHOR - Cory G Watson - -COPYRIGHT AND LICENSE - This software is copyright (c) 2011 by Cory G Watson. - - This is free software; you can redistribute it and/or modify it under - the same terms as the Perl 5 programming language system itself. - diff --git a/dist.ini b/dist.ini index 43c13f7..5e698c2 100644 --- a/dist.ini +++ b/dist.ini @@ -19,6 +19,11 @@ copyright_year = 2011 [PkgVersion] [MinimumPerl] +[SurgicalPodWeaver] + +[ReadmeAnyFromPod] +type = text + [MetaResources] bugtracker.web = http://rt.cpan.org/NoAuth/Bugs.html?Dist=MooseX-UndefTolerant bugtracker.mailto = bug-moosex-undeftolerant@rt.cpan.org @@ -29,8 +34,6 @@ repository.type = git [AutoPrereqs] skip = ^Foo|Bar|Baz -[SurgicalPodWeaver] - [PodSyntaxTests] ;[PodCoverageTests] [Test::Pod::LinkCheck]