8 use lib "$FindBin::Bin/lib";
13 use Class::C3::Componentised::ApplyHooks;
15 AFTER_APPLY { $_[0]->after("a $_[1]") };
16 AFTER_APPLY { $_[0]->after("b $_[1]") };
17 BEFORE_APPLY { $_[0]->before("a $_[1]") };
18 BEFORE_APPLY { $_[0]->before("b $_[1]") };
28 use Class::C3::Componentised::ApplyHooks
29 -after_apply => sub { $_[0]->after("a $_[1]") },
30 -before_apply => sub { $_[0]->before("a $_[1]") },
31 qw(BEFORE_APPLY AFTER_APPLY);
33 AFTER_APPLY { $_[0]->after("b $_[1]") };
34 BEFORE_APPLY { $_[0]->before("b $_[1]") };
48 package A::Class::Second;
50 use base 'Class::C3::Componentised';
56 sub component_base_class { 'A' }
57 __PACKAGE__->load_components('Second');
59 sub before { push @before, $_[1] }
60 sub after { push @after, $_[1] }
67 ], 'before runs in the correct order');
73 ], 'after runs in the correct order');
77 package A::Class::Third;
79 use base 'Class::C3::Componentised';
85 sub component_base_class { 'A' }
86 __PACKAGE__->load_components('Third');
88 sub before { push @before, $_[1] }
89 sub after { push @after, $_[1] }
96 ], 'before runs in the correct order');
102 ], 'after runs in the correct order');