class Opie::Operation
Constants
- FAIL
Attributes
context[R]
failure[R]
output[R]
Public Class Methods
call(input = nil, context = nil)
click to toggle source
# File lib/opie/operation.rb, line 26 def call(input = nil, context = nil) new.call(input, context) end
step(name)
click to toggle source
# File lib/opie/operation.rb, line 30 def step(name) add_step(name) end
step_list()
click to toggle source
# File lib/opie/operation.rb, line 34 def step_list @steps ||= [] end
Private Class Methods
add_step(name)
click to toggle source
# File lib/opie/operation.rb, line 40 def add_step(name) @steps ||= [] @steps << name end
Public Instance Methods
call(input = nil, context = nil)
click to toggle source
# File lib/opie/operation.rb, line 7 def call(input = nil, context = nil) @context = context execute_steps(input) self end
failure?()
click to toggle source
# File lib/opie/operation.rb, line 13 def failure? failure end
failures()
click to toggle source
# File lib/opie/operation.rb, line 21 def failures [failure].compact end
success?()
click to toggle source
# File lib/opie/operation.rb, line 17 def success? !failure? end
Private Instance Methods
execute_step(name, input)
click to toggle source
# File lib/opie/operation.rb, line 60 def execute_step(name, input) args = [name, input] args = args.push(context) if method(name).arity == 2 public_send(*args) end
execute_steps(input)
click to toggle source
# File lib/opie/operation.rb, line 48 def execute_steps(input) step_list = self.class.step_list next_input = input step_list.find do |name| next_input = execute_step(name, next_input) failure? end @output = next_input if success? end
fail(type, data = nil)
click to toggle source
# File lib/opie/operation.rb, line 66 def fail(type, data = nil) @failure = Failure.new(type, data) end