class SafeOperation
Constants
- VERSION
Public Class Methods
failure(value)
click to toggle source
# File lib/safe_operation.rb, line 24 def failure(value) new(failure: value) end
new(success: nil, failure: nil)
click to toggle source
# File lib/safe_operation.rb, line 31 def initialize(success: nil, failure: nil) @result = success ? Success.new(success) : Failure.new(failure) end
run() { || ... }
click to toggle source
# File lib/safe_operation.rb, line 14 def run success(yield) rescue StandardError => exception failure(exception) end
success(value)
click to toggle source
# File lib/safe_operation.rb, line 20 def success(value) new(success: value) end
Public Instance Methods
and_then(&block)
click to toggle source
# File lib/safe_operation.rb, line 51 def and_then(&block) if success? self.class.success(block.call(value)) else self end end
or_else(&block)
click to toggle source
# File lib/safe_operation.rb, line 59 def or_else(&block) if success? self else self.class.failure(block.call(value)) end end
value_or(fallback_value)
click to toggle source
# File lib/safe_operation.rb, line 35 def value_or(fallback_value) if success? value else fallback_value end end
value_or_else(&fallback_block)
click to toggle source
# File lib/safe_operation.rb, line 43 def value_or_else(&fallback_block) if success? value else fallback_block.call(value) end end