SYNOPSIS

 package MyComponent;

 our %statistics;

 use Class::C3::Componentised::ApplyHooks
   -before_apply => sub {
     my ($class, $component) = @_;

     push @{$statistics{$class}}, '-before_apply';
   },
   -after_apply  => sub {
     my ($class, $component) = @_;

     push @{$statistics{$class}}, '-after_apply';
   }, qw(BEFORE_APPLY AFTER_APPLY);

 BEFORE_APPLY { push @{$statistics{$class}}, 'BEFORE_APPLY' };
 AFTER_APPLY { push @{$statistics{$class}}, 'AFTER_APPLY' };
 AFTER_APPLY { use Devel::Dwarn; Dwarn %statistics };

 1;

DESCRIPTION

This package allows a given component to run methods on the class that is being injected into before or after the component is injected. Note from the \*(L"\s-1SYNOPSIS\s0\*(R" that all \*(C`Load Actions\*(C' may be run more than once.

IMPORT ACTION

Both import actions simply run a list of coderefs that will be passed the class that is being acted upon and the component that is being added to the class.

IMPORT OPTIONS

-before_apply

Adds a before apply action for the current component without importing any subroutines into your namespace.

-after_apply

Adds an after apply action for the current component without importing any subroutines into your namespace.

EXPORTED SUBROUTINES

\s-1BEFORE_APPLY\s0

BEFORE_APPLY { warn "about to apply $_[1] to class $_[0]" };

Adds a before apply action for the current component.

\s-1AFTER_APPLY\s0

AFTER_APPLY { warn "just applied $_[1] to class $_[0]" };

Adds an after apply action for the current component.