All Versions
23
Latest Version
Avg Release Cycle
93 days
Latest Release
1192 days ago
Changelog History
Page 1
Changelog History
Page 1
-
v0.13.3 Changes
June 07, 2021๐ Fixed
- ๐ Fix deprecation warning on Ruby 3.0 when there are empty hash-like args (via #137) (@bestwebua)
-
v0.13.2 Changes
February 08, 2021๐ Fixed
- ๐ Re-allow Hash-like parameters to be passed to steps, e.g.
HashWithIndifferentAccess
and otherHash
subclasses (this was broken with the Ruby 2.7/3.0 fixes in 0.13.1) (@trammel in #136)
- ๐ Re-allow Hash-like parameters to be passed to steps, e.g.
-
v0.13.1 Changes
January 31, 2021๐ Changed
- ๐ Resolve Ruby 2.7 deprecation warnings and support Ruby 3.0 (@robbl-as in PR #134)
-
v0.13.0 Changes
June 13, 20180.13.0 / 2018-06-13
๐ Changed
- Internal step operations (steps backed by instance methods) can now be replaced via constructor arguments. Using instance methods to wrap external step operations now only works if the step is defined using the
with:
option (timriley in #109)
- Internal step operations (steps backed by instance methods) can now be replaced via constructor arguments. Using instance methods to wrap external step operations now only works if the step is defined using the
-
v0.12.1 Changes
June 05, 2018๐ Fixed
- ๐ Support result matching on step failures nested within around steps (flash-gordon in [#106][pr106])
-
v0.12.0 Changes
May 15, 2018๐ Changed
- ๐ Switch to
Dry::Monads::Result
API (away fromEither
API deprecated in dry-monads 1.0 betas) (Morozzzko in [#104][pr104])
- ๐ Switch to
-
v0.11.2 Changes
May 15, 2018๐ Changed
- ๐ Use
Dry::Monads::Result
instead of the deprecatedDry::Monads::Either
in thecheck
step adapter (PavelTkachenko in [#103][pr103])
- ๐ Use
-
v0.11.1 Changes
March 14, 2018โ Added
- Include
operation_name:
in options passed to step adapters. This is helpful for 3rd party step adapters that need the operation's name to fetch it from the container again later. (timriley in [#94][pr94])
- Include
-
v0.11.0 Changes
February 19, 2018โ Added
- ๐ Around steps, which allow control of the execution of subsequently called steps. If you know how middleware works in rack or how around callbacks can be used in RSpec, it's the same. A typical example of usage would be for DB transactions (now first class support!) or controlling side effects: rolling back the changes, cleaning garbage produced by a failed transaction, etc. See a more detailed explanation of how this works in the PR (flash-gordon in #85)
- Broadcast when a step has started by sending the event
step_called
(mihairadulescu in #82) - โ Add new step
check
that returnsSuccess
orFailure
base on conditions (semenovDL in #84) - ๐ Support for transaction steps without input values (GustavoCaso and timriley in #69)
๐ Changed
- [BREAKING] Steps no longer broadcast events with their step name followed by
_success
or_failure
. Now, more generic names are used for the broadcast events. Before each step runs, astep
event is broadcast, with the step name and its arguments. After a step runs, astep_succeeded
orstep_failed
event is broadcast, also with the step name, the arguments and the return value (GustavoCaso in #83) - [BREAKING] Pub/sub support is now handled using dry-events instead of wisper. Subscriber objects should now respond to
#on_step
,#on_step_succeeded
, or#on_step_failed
to receive broadcast events (GustavoCaso in #90) - [BREAKING] The step adapter API has been changed in order to support around steps, although, the changes are not significant. Previously, an adapter received a
step
and a list of arguments for calling the operation. The list was passed as*args
then you were needed to callcall_operation
onstep
and provide the list. From now on an adapter gets anoperation
, itsoptions
, andargs
(without*
).operation
is an ordinary callable object so a typical call is as simple asoperaiton.(*args)
, that's it. If you want to turn your adapter into an around-like one you need to add&block
parameter to the list ofcall
arguments (e.g.def call(operation, options, args, &block)
).block
is responsible for calling the subsequent steps thus you can check or transform the return value and make some decisions based on it. Note capturing the block in the list of arguments is mandatory, a simpleyield
won't work, there are reasons, believe us. Check out the sources ofaround.rb
for reference, it's dead simple (flash-gordon in #85) - โก๏ธ Usages of the
Either
monad was updated withResult
and its constructors. See the changes indry-monads
for more details (flash-gordon in #81) - ๐ Minimal Ruby version is 2.2 (flash-gordon in #72)
๐ Fixed
-
v0.10.2 Changes
July 10, 2017๐ Fixed
- Only resolve an operation object from the container if the container reports that the key is present. This prevents exceptions from being raised when using dry-container and defining a transaction that includes steps both container-based and local method steps (jonolsson in [#64][pr64])