Moo
view release on metacpan or search on metacpan
lib/Moo/Role.pm view on Meta::CPAN
Moo::HandleMoose::inject_fake_metaclass_for($new_name);
}
my $lvl = 0;
my $file;
while ((my $pack, $file) = caller($lvl++)) {
if ($pack ne __PACKAGE__ && $pack ne 'Role::Tiny' && !$pack->isa($me)) {
last;
}
}
_set_loaded($new_name, $file || (caller)[1]);
return $new_name;
}
sub _gen_apply_defaults_for {
my ($me, $class, @roles) = @_;
my @attrs = map @{$INFO{$_}{attributes}||[]}, @roles;
my $con_gen;
lib/Moo/Role.pm view on Meta::CPAN
no_install => 1,
no_defer => 1,
}
);
}
sub apply_roles_to_object {
my ($me, $object, @roles) = @_;
my $new = $me->SUPER::apply_roles_to_object($object, @roles);
my $class = ref $new;
_set_loaded($class, (caller)[1]);
if (!exists $APPLY_DEFAULTS{$class}) {
$APPLY_DEFAULTS{$class} = $me->_gen_apply_defaults_for($class, @roles);
}
if (my $apply_defaults = $APPLY_DEFAULTS{$class}) {
local $Carp::Internal{+__PACKAGE__} = 1;
local $Carp::Internal{$class} = 1;
$new->$apply_defaults;
}
return $new;
exit 0;
}
my $package;
sub import {
moo() if $0 eq '-';
$package = $_[1] || 'Class';
if ($package =~ s/^\+//) {
_load_module($package);
}
my $line = (caller)[2] || 1;
require Filter::Util::Call;
my $done;
Filter::Util::Call::filter_add(sub {
if (!$done) {
s{\A}{package $package;\nuse Moo;\n#line $line\n};
$done = 1;
}
return Filter::Util::Call::filter_read();
});
}
( run in 0.996 second using v1.01-cache-2.11-cpan-1e74a51a04c )