Sha256: 737ee342785a8391fc0677fa73fd80cbd92d6762cca2cb6aa48a84c8c65d8ac9
Contents?: true
Size: 1.13 KB
Versions: 1
Compression:
Stored size: 1.13 KB
Contents
module Fear class Failure include Try include Dry::Equalizer(:value) include RightBiased::Left def initialize(exception) @value = exception end attr_reader :value protected :value def success? false end 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 # TODO: rename to select def detect self end # Applies the given block to exception. # This is like `flat_map` for the exception. # # @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 # Applies the given block to exception. # This is like map for the exception. # @return [Try] # def recover Success.new(yield(value)) rescue => error Failure.new(error) end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
fear-0.0.1 | lib/fear/failure.rb |