Class: Garcon::Hookers::Hooker

Inherits:
Array show all
Defined in:
lib/garcon/utility/hookers.rb

Defined Under Namespace

Classes: Results

Instance Method Summary collapse

Methods inherited from Array

#object_state, #sample

Constructor Details

#initialize(options) ⇒ Hooker

Returns a new instance of Hooker.



104
105
106
107
# File 'lib/garcon/utility/hookers.rb', line 104

def initialize(options)
  super()
  @options = options
end

Instance Method Details

#<<(callback) ⇒ Object



118
119
120
# File 'lib/garcon/utility/hookers.rb', line 118

def <<(callback)
  super Uber::Options::Value.new(callback, dynamic: true)
end

#run(scope, *args) ⇒ Object



109
110
111
112
113
114
115
116
# File 'lib/garcon/utility/hookers.rb', line 109

def run(scope, *args)
  inject(Results.new) do |results, callback|
    executed = execute_callback(scope, callback, *args)

    return results.halted! unless continue_execution?(executed)
    results << executed
  end
end