foreach my $role (@roles) {
_load_module($role);
- die "${role} is not a Role::Tiny" unless my $info = $INFO{$role};
+ die "${role} is not a Role::Tiny" unless $INFO{$role};
}
if ($] >= 5.010) {
*{_getglob("${new_name}::ISA")} = [ @composable, $superclass ];
- my @info = map +($INFO{$_} ? $INFO{$_} : ()), @roles;
+ my @info = map $INFO{$_}, @roles;
$me->_check_requires(
$new_name, $compose_name,
) {
push @mod_base, "sub ${modified} { shift->next::method(\@_) }";
}
+ my $e;
{
local $@;
eval(my $code = join "\n", "package ${base_name};", @mod_base);
- die "Evaling failed: $@\nTrying to eval:\n${code}" if $@;
+ $e = "Evaling failed: $@\nTrying to eval:\n${code}" if $@;
}
+ die $e if $e;
$me->_install_modifiers($composed_name, $modifiers);
$COMPOSED{role}{$composed_name} = 1;
return $composed_name;
=head1 NAME
-Role::Tiny - Roles. Like a nouvelle cusine portion size slice of Moose.
+Role::Tiny - Roles. Like a nouvelle cuisine portion size slice of Moose.
=head1 SYNOPSIS
This subroutine is also installed as ->does on any class a Role::Tiny is
composed into unless that class already has an ->does method, so
- if ($foo->does_role('Some::Role')) {
+ if ($foo->does('Some::Role')) {
...
}