Sha256: 286b8d24a5541ced5861afb83d7457c2970b620da140490c0e1bae9d29f113de

Contents?: true

Size: 625 Bytes

Versions: 7

Compression:

Stored size: 625 Bytes

Contents

require_relative 'result'
require_relative 'error'

module Verbalize
  class Failure < Result
    extend Gem::Deprecate

    def initialize(failure)
      super(outcome: :error, value: failure)
    end

    def failure
      @value
    end

    def value
      raise Verbalize::Error, 'You called #value on a Failure result.  You should never use `Verbalize::Action#call` ' \
        'without also explicitly handling potential errors.  Please use `Verbalize::Action#call!` to return a value ' \
        'directly on successful execution of an action, or handle the error case explicitly if using `#call`.'
    end
  end
end

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
verbalize-2.3.1 lib/verbalize/failure.rb
verbalize-2.3.0 lib/verbalize/failure.rb
verbalize-2.2.0 lib/verbalize/failure.rb
verbalize-2.1.1 lib/verbalize/failure.rb
verbalize-2.1.0 lib/verbalize/failure.rb
verbalize-2.0.1 lib/verbalize/failure.rb
verbalize-2.0.0 lib/verbalize/failure.rb