class Shrek::Runner

Attributes

layers[R]
options[R]

Public Class Methods

new(*layers, **options) click to toggle source
# File lib/shrek/runner.rb, line 7
def initialize(*layers, **options)
  @options = options
  parse_layers!(*layers)
end

Public Instance Methods

call(*args) click to toggle source
# File lib/shrek/runner.rb, line 12
def call(*args)
  chain.call(*args)
end

Private Instance Methods

chain() click to toggle source
# File lib/shrek/runner.rb, line 18
def chain
  layers.reverse.inject(self_return) { |inner, outer| outer.new(inner) }
end
parse_layers!(*layers) click to toggle source
# File lib/shrek/runner.rb, line 22
def parse_layers!(*layers)
  # now we use all args as layers, but in future maybe will be convenient
  # to add registry?
  @layers = layers
end
self_return() click to toggle source
# File lib/shrek/runner.rb, line 28
def self_return
  options[:self_return] || EMPTY_RETURN
end