Comments (3)
Thanks for the response!
I appreciate your concerns, the initial implementation was indeed rudimentary. I was already working on the more sophisticated implementation in #152, and I think it addresses almost all of your concerns, so went ahead and opened it.
- Supports
play
by returning the return value of the final actor in the chain. - Supports
fail!
, as it raises normally when an actor or play chain actor fails. - Supports
rollback
, though likecall
it will raise an error, and to access the failed actor state one still needs to useresult
.- I have a notion to add something like a
last_rollback_value
option, though I think this use case is niche enough that usingresult
suffices.
- I have a notion to add something like a
By single type signature, I understand you to mean that call
and result
both return a ServiceActor::Result
. I'll suggest that output_of
is purely additive, it still leverages results, doesn't impinge on existing functionality, and just streamlines the accessing of result.explicit_output
.
from actor.
Hi there! Thank you for bringing up this suggestion 🤗
While I understand the need for a more streamlined syntax I don’t think this is a good fit for the gem as it doesn’t work well with the idea of a single type of signature for actors, doesn’t allow for actors to be used in play
and pass their outputs from one to the other, doesn’t allow for the fail!
and rollback
mechanisms.
While I think this is fine as a monkey-patch I’d rather not support it fully by adding this in the gem. As an extra precaution if you are using this I’d suggest adding output :_default_output
to your ApplicationActor
.
from actor.
Closed by #152. This is now possible using the .value(…)
method.
Thanks @llhhaa 👏🏻
from actor.
Related Issues (20)
- alias_input is documented but unavailable HOT 1
- What about improving the README about testing? HOT 1
- Get "TypeError: exception class/object expected" error when update from 3.1.3 to 3.6 HOT 2
- Question / feature request: hooks around call? HOT 6
- Missing note on stubbing ServiceActor::Result HOT 4
- Can't set an hash as a default value for an input HOT 1
- Keep Zeitwerk as a development dependency only HOT 2
- Consider removing `OpenStruct` usage HOT 2
- Consider dropping support for unmaintained Ruby releases HOT 1
- Misleading `ServiceActor::ArgumentError` message under specific circumstances HOT 8
- Make Actor result + pattern matching more pleasant HOT 1
- Actor's output names collision with `Object`'s instance methods HOT 2
- Using `Kernel.tap` and `Kernel.then` via `ServiceActor::Result` receiver HOT 1
- Is `DefaultCheck` obsolete? HOT 4
- Invoking undefined methods on `ServiceActor::Result` will lead to runtime errors in the next major release of Actor. HOT 29
- Release notes for 3.8.0 HOT 8
- Breaking changes on ServiceActor::Result `failure?` after dropping `ostruct` ??? HOT 5
- Repeated `play` execution on 3.9.0 HOT 2
- Actor play continues to call subsequent actors/interactors when one of the interactors fail HOT 4
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from actor.