Module: Textus::Value::Result
- Defined in:
- lib/textus/value/result.rb
Overview
Unwraps Dry::Monads results at the Gate seam. Every action returns Success(value) or Failure(code:, message:, details:). This module converts Failure into an ActionError for surfaces (CLI, MCP) that expect exceptions.
Class Method Summary collapse
Class Method Details
.unwrap(result) ⇒ Object
10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
# File 'lib/textus/value/result.rb', line 10 def self.unwrap(result) case result when Dry::Monads::Result::Success then result.value! when Dry::Monads::Result::Failure failure = result.failure raise ActionError.new( failure[:code] || :internal, failure[:message] || "action failed", details: failure[:details] || {}, ) else result end end |