Sha256: aa2e2427e8f2eebeddf1ae6a95759c2e9019ac5d454fba564c5db02d6aa13cfe
Contents?: true
Size: 1.64 KB
Versions: 1
Compression:
Stored size: 1.64 KB
Contents
# frozen_string_literal: true module Fear class Success include Try include RightBiased::Right include PatternMatch.mixin attr_reader :value protected :value # @param [any] def initialize(value) @value = value end # @return [any] def get @value end # @return [Boolean] def success? true end # @return [false] def failure? false end # @return [Success] def or_else self end # @return [Try] def flatten if value.is_a?(Try) value.flatten else self end end # @yieldparam [any] value # @yieldreturn [Boolean] # @return [Try] def select if yield(value) self else raise NoSuchElementError, "Predicate does not hold for `#{value}`" end rescue StandardError => error Failure.new(error) end # @return [Success] def recover_with self end # @return [Success] def recover self end # @return [Try] def map super rescue StandardError => error Failure.new(error) end # @return [Try] def flat_map super rescue StandardError => error Failure.new(error) end # @return [Right] def to_either Right.new(value) end # @param other [Any] # @return [Boolean] def ==(other) other.is_a?(Success) && value == other.value end # @return [String] def inspect "#<Fear::Success value=#{value.inspect}>" end # @return [String] alias to_s inspect # @return [<any>] def deconstruct [value] end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
fear-3.0.0 | lib/fear/success.rb |