Sha256: 853fbdd7bd70bfbeea956b43c633f80a759e5ae34b6b37c7ffefa5122ed3e34e
Contents?: true
Size: 1.61 KB
Versions: 2
Compression:
Stored size: 1.61 KB
Contents
# frozen_string_literal: true module Dry module Effects module Errors module Error end class UnhandledEffectError < RuntimeError include Error attr_reader :effect def initialize(effect, message = Undefined) @effect = effect super( Undefined.default(message) { "Effect #{effect.inspect} not handled. "\ 'Effects must be wrapped with corresponding handlers' } ) end end class MissingStateError < UnhandledEffectError def initialize(effect) message = "Value of +#{effect.scope}+ is not set, "\ 'you need to provide value with an effect handler' super(effect, message) end end class UndefinedStateError < RuntimeError include Error def initialize(effect) message = "+#{effect.scope}+ is not defined, you need to assign it first "\ 'by using a writer, passing initial value to the handler, or '\ 'providing a fallback value' super(message) end end class EffectRejectedError < RuntimeError include Error end class ResolutionError < RuntimeError include Error def initialize(key) super("Key +#{key.inspect}+ cannot be resolved") end end class InvalidValueError < ArgumentError include Error def initialize(value, scope) super("#{value.inspect} is invalid and cannot be assigned to #{scope}") end end end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
dry-effects-0.1.0.alpha2 | lib/dry/effects/errors.rb |
dry-effects-0.1.0.alpha | lib/dry/effects/errors.rb |