Sha256: 08a64fb0a8b37ca99629643c2ed1b19bc3ee131e7b1b2c7fef05324b361db015
Contents?: true
Size: 746 Bytes
Versions: 2
Compression:
Stored size: 746 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| self[key.to_sym] = value } end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
business_pipeline-0.3.1 | lib/business_pipeline/context.rb |
business_pipeline-0.3.0 | lib/business_pipeline/context.rb |