Sha256: 1dd04b34996ab68cf0868aebf920637ba6993437b0dee392ff98899e5dc61098
Contents?: true
Size: 753 Bytes
Versions: 1
Compression:
Stored size: 753 Bytes
Contents
# frozen_string_literal: true require 'ostruct' module BusinessPipeline class Context < OpenStruct def self.build(context = {}) context.is_a?(self) ? context : new(context) end def initialize(*) super @failure = false end def fail @failure = true end def fail!(additional_context = {}) update!(additional_context) self.fail throw :early_stop, self end def failure? !!@failure end def succeed!(additional_context = {}) update!(additional_context) throw :early_stop, self end def success? !failure? end private def update!(context) context.each { |key, value| modifiable?[key.to_sym] = value } end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
business_pipeline-0.2.0 | lib/business_pipeline/context.rb |