def fail!(context = {})
      context.each { |key, value| modifiable[key.to_sym] = value }
      @failure = true
      raise Failure, self
    end
def fail!(context = {})
      context.each { |key, value| modifiable[key.to_sym] = value }
      @failure = true
      raise Failure, self
    end
Public: Fail the Interactor::Context. Failing a context raises an error
 that may be rescued by the calling interactor. The context is also flagged
 as having failed.

 Optionally the caller may provide a hash of key/value pairs to be merged
 into the context before failure.

 context - A Hash whose key/value pairs are merged into the existing
           Interactor::Context instance. (default: {})

 Examples

   context = Interactor::Context.new
   # => #<Interactor::Context>
   context.fail!
   # => Interactor::Failure: #<Interactor::Context>
   context.fail! rescue false
   # => false
   context.fail!(foo: "baz")
   # => Interactor::Failure: #<Interactor::Context foo="baz">

 Raises Interactor::Failure initialized with the Interactor::Context.