class Sebastian::Result
Invokes the supplied block and wraps the return value in a Sebastian::Result
object.
Example:
result = Sebastian::Result.new(value: 'foo') result.ok? # => true result.value # => 'foo' result = Sebastian::Result.new(value: 'foo', errors: ['bar']) result.ok? # => false result.value! # => Sebastian::ServiceReturnedErrorsError
Attributes
errors[R]
value[R]
Public Class Methods
new(value:, errors:)
click to toggle source
# File lib/sebastian/result.rb, line 21 def initialize(value:, errors:) @value = value @errors = errors end
Public Instance Methods
ok?()
click to toggle source
# File lib/sebastian/result.rb, line 26 def ok? @errors.empty? end
to_s()
click to toggle source
# File lib/sebastian/result.rb, line 35 def to_s if ok? "#<Sebastian::Result value: #{@value.inspect}>" else "#<Sebastian::Result errors: #{@errors.details.inspect}>" end end
Also aliased as: inspect
value!()
click to toggle source
# File lib/sebastian/result.rb, line 30 def value! return @value if ok? raise InvalidResultError, errors.full_messages.join(', ') end