Skip to content

Релиз 3.0

Были подготовлены и реализованы следующие изменения.

Архитектура

Stroma

  • Stroma — ядро библиотеки, отвечающее за управление модулями, хуками и расширениями.
  • Добавлена система хуков before и after для кастомизации сервисов.
  • Реорганизована структура с иерархическим хранением настроек модулей.

Конфигурация

  • Рефакторинг для предотвращения shared state между родительскими и дочерними классами.

Атрибуты

Динамические опции

  • Добавлена опция target для валидации классов;
  • Добавлена поддержка Range в опции inclusion;
  • Улучшена валидация: nil guards, проверка типов в format, точность Float.

Действия

Stage

  • Улучшена функциональность stage;
  • Переименованы методы: should_skip?, condition_met?.

Расширения

  • Расширения теперь работают через систему хуков Stroma с поддержкой before и after;
  • Добавлены примеры расширений: Authorization, Transactional, Idempotent, Rollbackable и др.;
  • Добавлен генератор для создания расширений.

Подробнее в документации расширений.

Тестирование

RSpec

  • Редизайн Test Kit с модульной архитектурой Registry DSL;
  • Добавлен Fluent API для мокирования сервисов;
  • Добавлена поддержка cross-service exception handling.

Генераторы Rails

Добавлены и улучшены генераторы для Rails:

  • servactory:install — установка и настройка;
  • servactory:service — создание сервисов с поддержкой inputs и типизации;
  • servactory:rspec — создание RSpec тестов;
  • servactory:extension — создание расширений.

Улучшения включают: поддержку кастомных путей, нормализацию типов, расширенную совместимость с Rails 5.1-8.1.

I18n

Добавлены новые локали: немецкий (de), французский (fr), испанский (es), итальянский (it).

Ruby

Была проверена поддержка Ruby 4.0.0.

Rails

Была проверена поддержка Rails 8.1.

Прочее

Релиз также содержит прочие исправления и улучшения.