Internal Modernization
This release brings a significant internal modernization of the codebase. No breaking changes or new user-facing features — the public API remains the same.
The goal was to simplify the internals, reduce duplication, and expand test coverage, laying the groundwork for easier maintenance and future development of the gem.
Refactored
- Extracted shared DSL (
add_field,add_text,add_image,add_table,add_section) intoComposablemodule, included by bothReportandNestable - Unified
DataSourceto use lazy evaluation —set_sourcestores the record,valuedecides extraction strategy at read time - Broke up
Report#generateinto focused private methods (replace_placeholders!,include_images) - Simplified
Tableinternals: renamed methods, removed redundant code - Cleaned up
Image,Template,Text,Field, andParser::Default
Testing
- Added RSpec specs for nested tables, sub-sections, table headers, fields inside text, and rich text in sections/tables (19 → 38 examples)
- Organized specs and templates into grouped subfolders
- Decoupled spec templates from legacy test directory
Full Changelog: 0.8.1...0.9.0