Sha256: 49ba848bc82484c4f6b2a7d77672e19e054d1960417603791bb6d97c3cca4e97
Contents?: true
Size: 1.16 KB
Versions: 4
Compression:
Stored size: 1.16 KB
Contents
module Fear class Failure include Try include Dry::Equalizer(:value) include RightBiased::Left # @param [StandardError] def initialize(exception) @value = exception end attr_reader :value protected :value # @return [Boolean] def success? false end # @return [true] def failure? true end # @raise def get fail value end # @return [Try] of calling block def or_else Success.new(yield) rescue => error Failure.new(error) end # @return [Failure] self def flatten self end # @return [Failure] self def select self end # @yieldparam [Exception] # @yieldreturn [Try] # @return [Try] def recover_with yield(value).tap do |result| Utils.assert_type!(result, Success, Failure) end rescue => error Failure.new(error) end # @yieldparam [Exception] # @yieldreturn [any] # @return [Try] def recover Success.new(yield(value)) rescue => error Failure.new(error) end # @return [Left] def to_either Left.new(value) end end end
Version data entries
4 entries across 4 versions & 1 rubygems
Version | Path |
---|---|
fear-0.4.1 | lib/fear/failure.rb |
fear-0.4.0 | lib/fear/failure.rb |
fear-0.3.0 | lib/fear/failure.rb |
fear-0.2.0 | lib/fear/failure.rb |