Skip to content

0.9.0

Latest

Choose a tag to compare

@sandrods sandrods released this 16 Feb 21:11
· 5 commits to master since this release

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) into Composable module, included by both Report and Nestable
  • Unified DataSource to use lazy evaluation — set_source stores the record, value decides extraction strategy at read time
  • Broke up Report#generate into focused private methods (replace_placeholders!, include_images)
  • Simplified Table internals: renamed methods, removed redundant code
  • Cleaned up Image, Template, Text, Field, and Parser::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