You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Sometimes there are situations when an interactor operates with sensible resources, for example, with files. In my opinion, we should have a mechanism to do a final processing on that resources in case an error occurs.
Currently I'm creating a lot of files in my system, location of that files are calculated during execution of interactor and they are available only through interactor's context. So deleting them with ensure_hook solves my problem.
I hope this feature will be useful.
P.S. I will add more tests and docs if everything is ok.
I'm looking at this and #206 and I don't fully understand the use case or how an Interactor level ensure wouldn't be covered by the ensure mechanism in Ruby itself.
In your example it sounds like you have one Interactor which opens the file and puts it in the Context, several other Interactors that act on the file, then it is closed at some point. The ensure hook would make the pattern more complete by putting the close near the open. Without more context it seems like it could be solved by reorganizing the Interactors such that the processing chain is passed an open file from code that is also responsible for closing the file.
I'm open to a more concrete example for how ensure would help solve a problem. It seems like there is a want for it or a need to better document how to scope Interactors to avoid that need.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Sometimes there are situations when an interactor operates with sensible resources, for example, with files. In my opinion, we should have a mechanism to do a final processing on that resources in case an error occurs.
Currently I'm creating a lot of files in my system, location of that files are calculated during execution of interactor and they are available only through interactor's context. So deleting them with ensure_hook solves my problem.
I hope this feature will be useful.
P.S. I will add more tests and docs if everything is ok.