Inline $from
[gitmo/Mouse.git] / lib / Mouse.pm
index 140a1ea..f4cdfe0 100644 (file)
@@ -4,7 +4,7 @@ use strict;
 use warnings;
 use base 'Exporter';
 
-our $VERSION = '0.11';
+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