Release 3.0
The following changes have been prepared and implemented.
Architecture
Stroma
- Stroma — the library core responsible for managing modules, hooks, and extensions.
- Added
beforeandafterhook system for service customization. - Reorganized structure with hierarchical module settings storage.
Configuration
- Refactoring to prevent shared state between parent and child classes.
Attributes
Dynamic Options
- Added the
targetoption for class validation; - Added Range support in the
inclusionoption; - Improved validation: nil guards, type checking in format, Float precision.
Actions
Stage
- Improved stage functionality;
- Renamed methods:
should_skip?,condition_met?.
Extensions
- Extensions now work through the Stroma hook system with
beforeandaftersupport; - Added extension examples: Authorization, Transactional, Idempotent, Rollbackable, and others;
- Added generator for creating extensions.
See the Extensions documentation for details.
Testing
RSpec
- Test Kit redesign with modular Registry DSL architecture;
- Added Fluent API for service mocking;
- Added cross-service exception handling support.
Rails Generators
Added and improved generators for Rails:
servactory:install— installation and setup;servactory:service— service creation with inputs and typing support;servactory:rspec— RSpec test creation;servactory:extension— extension creation.
Improvements include: custom path support, type normalization, extended Rails 5.1-8.1 compatibility.
I18n
Added new locales: German (de), French (fr), Spanish (es), Italian (it).
Ruby
Support for Ruby 4.0.0 has been verified.
Rails
Support for Rails 8.1 has been verified.
Other
This release also contains other fixes and improvements.