A brief list of new features and changes introduced with the specified version.
- Implement built-in localization adapter
- Swap ActiveSupport::Deprecation with built-in LightSupport::Deprecation
- Remove Active Support dependency
- Remove Ruby 2.6, add 3.1 to build
- Add reduce_when
- Drop Ruby 2.5 version support, add 3.0 build
- Support for named argument in Ruby
- Fix around_action hook for nested actions
- Add ReduceIfElse macro
- Implement support for default values for optional expected keys
- Add light-service.js implementation to README
- Drop Ruby 2.4 support
- Fix callback current action
- Add Context accessors
- Switched to GH Actions from Travis CI
- Add Rails Generators - LightService actions and organizers can be generated with generators
- Add CodeCov - Upload code coverage report to codecov.io
- Remove ActiveSupport 3 checks - They are unsupported, no need to tests them any more.
- Add 'organized_by' to context - Context now have an #organized_by attribute
- Add 'add_to_context' and 'add_aliases' - Updating Ruby compatibility, minor fixes
- Revert 0.10.1, it breaks tests in our apps :-(.
- Fixing ContextFactory for orchestrator methods in Organizers.
- Deprecate Orchestrator by moving its functionality to Organizers.
- Only pass default argument to Hash#fetch in context if no block given.
- Make logging more efficient the context.
- A better way to inspect the context.
- Short-circuiting the Orchestrator methods.
- Fail and return - with one call, no
and next
is needed. - Adding with_callback to Orchestrators, allows us to process large data in smaller chunks.
- Renaming
skip_all!
to skip_remaining!. - Adding ContextFactory for easier testing.
- Adding orchestrators.
- Organizers should have a public method call in preparation of orchestrators.
- Introducing around_each for AOP style logging and code execution
- Introducing Rubocop to the project, forcing consistant style
- Using extend for using class methods in Actions and Organizers
- Setting key aliases for the Context from the Organizer
- Guarding context keys against the reserved keys the context needs to operate.
- Removing the thrown exception for invoking the "executed" macro twice
- Adding rollback functionality
- Adding message localization feature
- Adding logging to LightService
- Collecting the
expects
andpromises
keys when they are called multiple times in an action
- remove previously deprecated method Context#context_hash
- Skipping the promised keys check in the context when the context is in failure state
- The method call
with
is now optional in case you have nothing to put into the context. - Action name is being displayed in the error message when the expected or promised key is not in the context.
- Switching the promises and expects key accessors from Action to Context
- Fixing documentation and using separate arguments instead of a hash when setting the context to failure with error code
- Adding error codes to the context
- Adding the
expects
andpromises
macros - Read more about it in this blog post
- Adding the gem version icon to README
- Actions can be invoked now without arguments, this makes it super easy to play with an action in the command line
- Improving deprecation warning for the renamed methods
- Making the message an optional argument for
succeed!
andfail!
methods