1 package MooseX::Declare::Syntax::RoleApplication;
5 use aliased 'MooseX::Declare::Context::Namespaced';
7 use namespace::clean -except => 'meta';
10 MooseX::Declare::Syntax::OptionHandling
13 around context_traits => sub { shift->(@_), Namespaced };
15 sub add_with_option_customizations {
16 my ($self, $ctx, $package, $roles) = @_;
19 $ctx->add_early_cleanup_code_parts(
20 sprintf 'Moose::Util::apply_all_roles(%s->meta, %s)',
24 map { $ctx->qualify_namespace($_) }
35 MooseX::Declare::Syntax::RoleApplication - Handle user specified roles
39 This role extends L<MooseX::Declare::Syntax::OptionHandling> and provides
40 a C<with|/add_with_option_customizations> option.
46 =item * L<MooseX::Declare::Syntax::OptionHandling>
52 =head2 add_with_option_customizations
54 Object->add_with_option_customizations (
61 This will add a call to C<with> in the scope code.
67 =item * L<MooseX::Declare>
69 =item * L<MooseX::Declare::Syntax::OptionHandling>
73 =head1 AUTHOR, COPYRIGHT & LICENSE
75 See L<MooseX::Declare>