X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FMouse.pm;h=f4cdfe0f990f423882572f2d804ef064797ffb7c;hb=95e0838c698351915133884105fcf5f43cc85a55;hp=c529135f91715e4846dd42383f9e84d66eaf921d;hpb=7a024324a4bc51897bafff2b9cf86998ae7cbe98;p=gitmo%2FMouse.git diff --git a/lib/Mouse.pm b/lib/Mouse.pm index c529135..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 { @@ -299,9 +300,10 @@ Whether this attribute is required to have a value. If the attribute is lazy or has a builder, then providing a value for the attribute in the constructor is optional. -=item init_arg => Str +=item init_arg => Str | Undef -Allows you to use a different key name in the constructor. +Allows you to use a different key name in the constructor. If undef, the +attribue can't be passed to the constructor. =item default => Value | CodeRef @@ -359,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