lib/fluxus/results/chainable.rb in fluxus-0.1.2 vs lib/fluxus/results/chainable.rb in fluxus-1.0.0
- old
+ new
@@ -1,9 +1,16 @@
# frozen_string_literal: true
module Fluxus
module Results
module Chainable
+ def then(klass, **kwargs)
+ return self if failure?
+
+ data ||= {}
+ klass.call!(**data.merge(kwargs))
+ end
+
def on_success(expected_type = nil)
yield(data) if __success_type?(expected_type)
self
end