Development Guidelines
- Keep is simple.
- Favor easy debug-ability over clever solutions.
- Aim to be a 0-dependency lib (at runtime)
Roadmap
Add "Settings" for Operations and Chains
MyOp.with(foo: "bar").call("input") class MyOp settings Types::Hash.schema(foo: Types::String) def call(input) input == "input" settings.foo == "bar" end end MyCain.with(:step1) { { foo: "bar" } }.with(:stepX) { { another: :setting} }.call(params)Add support for around hooks in Chains (for db transactions etc.)
Add a dry-monads mixin to wrap Operations and Chains result/error into a Result Monad
...