All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- Support for aliased module callbacks (
alias IO, as: MyIOwith@then {MyIO, :puts}) - Test coverage for aliased modules functionality
- Documentation examples showing aliased module usage
- Documentation examples now use
IO.putsinstead ofLogger(no require needed) - ExDoc configuration for proper main page rendering
- Documentation structure and navigation
- Better error messages and examples in documentation
- More comprehensive test suite covering edge cases
- Support for external module callbacks with
@then {Module, :function}syntax - Comprehensive validation for callback formats with clear error messages
- Tests covering external module callbacks, mixed callback types, and error cases
- Initial release of
Thenlibrary @thenattribute for post-execution callbacks- Support for side-effect separation from main function logic
- Compile-time validation to prevent multiple
@thenattributes per function - Compatibility with other function attributes (
@doc,@spec,@deprecated) - Support for private callback functions (
defp) - Comprehensive test suite
- Documentation with examples and limitations
- Clean separation of concerns between pure functions and side effects
- Automatic callback invocation after function execution
- Function result preservation (callbacks don't modify return values)
- Multi-clause function support
- Macro-based implementation for zero runtime overhead