MooseX-NotRequired

This module allows you to create anonymous sub classes of Moose classes with all the
required flags on the attributes turned off.

    package ObjectA;

    use Moose;

    has required => (is => 'ro', isa => 'Str', required => 1);
    has optional => (is => 'ro', isa => 'Int' );
    has semi_required => (is => 'ro', isa => 'Str' );

    1;

    ...

    use MooseX::NotRequired;

    my $new_class = MooseX::NotRequired::make_optional_subclass('ObjectA');
    my $obj = $new_class->new(); # no blow up
    my $default = $new_class->new({ semi_required => undef }); # fine too
    ...
    my $second = ObjectA->new(); # blow up because required isn't filled in.
    my $third = ObjectA->new({ required => 'a', semi_required => undef }); 
    # blow up because semi_required must be a string.

INSTALLATION

To install this module, run the following commands:

	perl Makefile.PL
	make
	make test
	make install

SUPPORT AND DOCUMENTATION

After installing, you can find documentation for this module with the
perldoc command.

    perldoc MooseX::NotRequired

You can also look for information at:

    RT, CPAN's request tracker (report bugs here)
        http://rt.cpan.org/NoAuth/Bugs.html?Dist=MooseX-NotRequired

    AnnoCPAN, Annotated CPAN documentation
        http://annocpan.org/dist/MooseX-NotRequired

    CPAN Ratings
        http://cpanratings.perl.org/d/MooseX-NotRequired

    Search CPAN
        http://search.cpan.org/dist/MooseX-NotRequired/


LICENSE AND COPYRIGHT

Copyright (C) 2011-2012 OpusVL

This program is free software; you can redistribute it and/or modify it
under the terms of either: the GNU General Public License as published
by the Free Software Foundation; or the Artistic License.

See http://dev.perl.org/licenses/ for more information.

