Sha256: ee7a57cac28bc784308e7b42bf38048ca618e238f14382233d632f3242cbf2f2
Contents?: true
Size: 1.28 KB
Versions: 1
Compression:
Stored size: 1.28 KB
Contents
module Fear class Success include Try include Dry::Equalizer(:value) include RightBiased::Right attr_reader :value protected :value def initialize(value) @value = value end def get @value end def success? true end # @return [Success] self def or_else self end # Transforms a nested `Try`, ie, a `Success` of `Success``, # into an un-nested `Try`, ie, a `Success`. # @return [Try] # def flatten if value.is_a?(Try) value.flatten else self end end # Converts this to a `Failure` if the predicate # is not satisfied. # @yieldparam [any] value # @yieldreturn [Boolean] # @return [Try] # def detect if yield(value) self else fail NoSuchElementError, "Predicate does not hold for `#{value}`" end rescue => error Failure.new(error) end # @return [Success] self # def recover_with self end # @return [Success] self # def recover self end # @return [Try] def map super rescue => error Failure.new(error) end # @return [Try] def flat_map super 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/success.rb |