Sha256: 416257efa179e2950162d24e33b72356b59c2c073bf1f9db91a1dfbd30e24225
Contents?: true
Size: 613 Bytes
Versions: 1
Compression:
Stored size: 613 Bytes
Contents
require "ostruct" module Interactor class Context < OpenStruct def self.build(context = {}) self === context ? context : new(context) end def success? !failure? end def failure? @failure || false end def fail!(context = {}) modifiable.update(context) @failure = true raise Failure, self end def called!(interactor) _called << interactor end def rollback! return false if @rolled_back _called.reverse_each(&:rollback) @rolled_back = true end def _called @called ||= [] end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
interactor-3.0.0 | lib/interactor/context.rb |