module ProcessChain::InstanceMethods
Public Class Methods
new(input: {}, success: true)
click to toggle source
Constructor @param input [Hash] input data for process @param success [true false] result of latest process @raise [ArgumentError] when input is not a Hash @return a new instance of class
# File lib/process_chain.rb, line 23 def initialize(input: {}, success: true) raise ArgumentError, '"input" should be a Hash' unless input.is_a? Hash @success = success @results = input end
Public Instance Methods
if_fail() { || ... }
click to toggle source
Execute passed code block if chain is not success @yield code block to be executed on fail
# File lib/process_chain.rb, line 43 def if_fail return self if success? yield end
if_success() { || ... }
click to toggle source
Execute passed code block if chain is success @yield code block to be executed on success
# File lib/process_chain.rb, line 36 def if_success return self unless success? yield if success? end
return_fail(results = nil)
click to toggle source
Returns a new fail instace of chain @param results [Hash] a new input for next process
# File lib/process_chain.rb, line 56 def return_fail(results = nil) self.class.new input: build_new_result(results), success: false end
return_success(results = nil)
click to toggle source
Returns a new success instace of chain @param results [Hash] a new input for next process
# File lib/process_chain.rb, line 50 def return_success(results = nil) self.class.new input: build_new_result(results) end
success?()
click to toggle source
@return [true false]
# File lib/process_chain.rb, line 30 def success? @success end
Private Instance Methods
build_new_result(input)
click to toggle source
# File lib/process_chain.rb, line 62 def build_new_result(input) input || results.dup end