Sha256: fd3a096206296e132b5591cb9ff20f1526208ab4693f252a8f1e5cddb78f050b
Contents?: true
Size: 653 Bytes
Versions: 2
Compression:
Stored size: 653 Bytes
Contents
module Plumbing module Actor class Inline def initialize target @target = target end # Send the message to the target and wrap the result def send_message(message_name, *, **, &) value = @target.send(message_name, *, **, &) Result.new(value) rescue => ex Result.new(ex) end def safely(&) send_message(:perform_safely, &) nil end def in_context? = true def stop = nil Result = Data.define(:result) do def value = result.is_a?(Exception) ? raise(result) : result end private_constant :Result end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
standard-procedure-plumbing-0.4.5 | lib/plumbing/actor/inline.rb |
standard-procedure-plumbing-0.4.4 | lib/plumbing/actor/inline.rb |