All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- Support for parameter-less failure and success handlers in ServiceSupport test helpers
- Flexible block parameter handling that works with both
on.failure { |error| ... }andon.failure do ... endpatterns - Comprehensive test coverage for parameter-less handler scenarios
- New helper methods in ServiceSupport for improved code organization
- Refactored ServiceSupport methods to use helper methods for better maintainability
- Enhanced ServiceSupport stubbing to automatically detect block parameter requirements
- Improved error handling in test stubs with fallback to parameter-less calls
- ServiceSupport methods now use Ruby's
ArgumentErrorrescue mechanism to detect block parameter compatibility stub_service_successandstub_service_failureautomatically handle both parameterized and parameter-less blocks- Test stubs try calling with parameters first, then fall back to parameter-less calls when blocks don't accept them
- This enables cleaner test code without requiring unused
|_|parameters in failure handlers
- Comprehensive test coverage achieving 100%
- GitHub Actions workflow for running tests
- GitHub Actions status badge to README
- Improved README formatting and clarity
- GitHub Actions workflow compatibility with Rails 8.0+
- ServiceSupport now properly yields success block values in stubbed services
- Improved constant namespacing to avoid need for global search with
:: - Fixed generator issues for proper file creation
- Type generator now works correctly
- Generator template improvements
- Removed types and locale support to simplify the gem
- Improved namespacing - everything now properly namespaced to
ServiceBase:: - Enhanced test coverage
- Active Support dependency for lighter footprint
- Locale support functionality
- Custom types functionality
- Initial release of ServiceBase gem
- Service Object pattern implementation with dry-rb integration
- Railway-oriented programming using dry-monads
- Type validation using dry-struct and dry-types
- ArgumentTypeAnnotations DSL for service arguments
- Service generators for Rails integration
- RSpec test helpers with ServiceSupport
- Comprehensive documentation and examples
- Base Service class with automatic type validation
- Result monad integration (Success/Failure)
- Service description and pretty-printing support
- Rails generators for ApplicationService and Type modules
- Test stubbing utilities for service success/failure scenarios
- Argument validation with descriptive error messages