Skip to content

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 before and after hook 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 target option for class validation;
  • Added Range support in the inclusion option;
  • 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 before and after support;
  • 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.