Changes for version 0.23
- Removed the concept of a standalone Aspect::Weaver class
- Each Aspect::Advice:: subclass now does most of the setup for the weaving individually, with similar but slightly different implementations. This adds some duplication of code, but removes a lot of architectural complexity. It should make the creation of new types of Advice simpler.
- Corrected the versions of the test libs (which went out of sync)
- The Hook::LexWrap wrap function is now split into Advice-specific hooks before and after, duplicating some code but making each type simpler and faster.
Modules
Aspect-oriented programming (AOP) for Perl
change how Perl code is run at a pointcut
a pointcut context for advice code
Lexically scoped subroutine wrappers
Observer pattern with events
cross-cutting memoization
A singleton aspect
give Test::Class test methods an IUT (implementation under test)
A wormhole between call frames
base class for reusable aspects
pointcut base class
Logical 'and' operation pointcut
Binary operation pointcut
Call pointcut
Cflow pointcut
Logical 'not' operation pointcut
Logical 'or' operation pointcut
Provides
in lib/Aspect/Advice/After.pm
in lib/Aspect/Advice/Before.pm
in lib/Aspect/Hook/LexWrap.pm
in lib/Aspect/Library/Listenable.pm