Changes for version 0.97_03
- Simplified if_true to true and ::If to ::True
- Expanded XS acceleration to more classes and methods
- Completed reasonable thorough main documentation for Aspect.pm
- Prohibit usage of the highest pointcut to one per advice declaration due to implementation complexity and unclear semantics.
- Added Advice::Point::Static for the cflow point details in line with AspectJ's idea of "static parts" of join points.
- Removed deprecated Aspect::AdviceContext now it is no longer needed by the cflow pointcut.
- Pointcut logic operations & | ! now validate their children
- The cflow declarator is now documented everywhere as single param, defaulting to an "enclosing" accessor, which is accelerated.
- Added specific accelerated Aspect::Point::pointcut method
- Move Aspect::Pointcut::Highest::Cleanup into its own module file
Changes for version 0.97_02
- Removed the barely document, untested and rarely used append_param(s)
- Added an improved SYNOPSIS and generally improving main POD
- Added limited XS acceleration if Class::XSAccessor 1.08 installed.
- Remove the use of test recursion in preparation for XS vs PP copying
Changes for version 0.97_01
- Now all standard keys have their own methods, remove the weird automagic from the AUTOLOAD method.
- Some more minor performance tweaks
- Removed excessive exception method from begin advice
- Moved proceed to the specific method it is used
- Renamed run_original to proceed, keeping the original as an alias
Modules
Aspect-Oriented Programming (AOP) for Perl
Change how Perl code is run at a pointcut
Execute code after a function is called
Execute code when a function returns without throwing an exception.
Execute code when a function throws an exception
Execute code both before and after a function
Execute code before a function is called
Holding area for internal generated code
Base class for all reusable aspects
A breakpoint aspect
Observer pattern with events
A singleton aspect
A wormhole between call frames
First generation base class for reusable aspects
The Join Point context
API for determining which events should be hooked
Logical 'and' pointcut
Call pointcut
Cflow pointcut
Pointcut for preventing recursive matching
Pointcut logic role
Logical 'not' pointcut
Logical 'or' pointcut
Exception typing pointcut
Pointcut that allows arbitrary Perl code
A pointcut for the run-time wantarray context
Provides
in lib/Aspect/Advice/After.pm
in lib/Aspect/Advice/AfterReturning.pm
in lib/Aspect/Advice/AfterThrowing.pm
in lib/Aspect/Advice/Around.pm
in lib/Aspect/Advice/Before.pm
in lib/Aspect/Library/Listenable/Event.pm
in lib/Aspect/Point/After.pm
in lib/Aspect/Point/AfterReturning.pm
in lib/Aspect/Point/AfterThrowing.pm
in lib/Aspect/Point/Around.pm
in lib/Aspect/Point/Before.pm
in lib/Aspect/Point/Static.pm
in lib/Aspect/Pointcut/Highest/Cleanup.pm