X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FMouse.pm;h=f4cdfe0f990f423882572f2d804ef064797ffb7c;hb=95e0838c698351915133884105fcf5f43cc85a55;hp=2e1bad9103a268116ce262842347d30f7dd4e766;hpb=ca63d17a8aadd98a4f493492d129459cb9eed6e3;p=gitmo%2FMouse.git diff --git a/lib/Mouse.pm b/lib/Mouse.pm index 2e1bad9..f4cdfe0 100644 --- a/lib/Mouse.pm +++ b/lib/Mouse.pm @@ -4,7 +4,7 @@ use strict; use warnings; use base 'Exporter'; -our $VERSION = '0.10'; +our $VERSION = '0.12'; use 5.006; use Carp 'confess'; @@ -69,11 +69,12 @@ sub with { my $meta = Mouse::Meta::Class->initialize(caller); my $role = shift; + my $args = shift || {}; - confess "Mouse::Role only supports 'with' on individual roles at a time" if @_; + confess "Mouse::Role only supports 'with' on individual roles at a time" if @_ || !ref $args; Mouse::load_class($role); - $role->meta->apply($meta); + $role->meta->apply($meta, %$args); } sub import { @@ -360,6 +361,11 @@ context. In scalar context, the reference is returned (NOT the list length or bucket status). You must specify an appropriate type constraint to use auto_deref. +=item lazy_build => 0|1 + +Automatically define lazy => 1 as well as builder => "_build_$attr", clearer => +"clear_$attr', predicate => 'has_$attr' unless they are already defined. + =back =head2 confess error -> BOOM