next if ($pkg || '') ne $role_name &&
($name || '') ne '__ANON__';
}
-
+
$map->{$symbol} = $method_metaclass->wrap($code);
}
sub get_method {
my ($self, $name) = @_;
- $self->get_method_map->{$name}
+ $self->get_method_map->{$name};
}
sub has_method {
}
sub combine {
- my ($class, @roles) = @_;
+ my ($class, @role_specs) = @_;
require Moose::Meta::Role::Application::RoleSummation;
- require Moose::Meta::Role::Composite;
+ require Moose::Meta::Role::Composite;
+
+ my (@roles, %role_params);
+ while (@role_specs) {
+ my ($role, $params) = @{ splice @role_specs, 0, 1 };
+ push @roles => $role->meta;
+ next unless defined $params;
+ $role_params{$role} = $params;
+ }
my $c = Moose::Meta::Role::Composite->new(roles => \@roles);
- Moose::Meta::Role::Application::RoleSummation->new->apply($c);
+ Moose::Meta::Role::Application::RoleSummation->new(
+ role_params => \%role_params
+ )->apply($c);
+
return $c;
}