module Runaround::CallbackHook
Public Class Methods
build_for(method, manager)
click to toggle source
Calls superclass method
# File lib/runaround/callback_hook.rb, line 6 def self.build_for(method, manager) Module.new do define_method(method) do |*args,**opts,&block| mc = MethodCall.new(method, args, opts, block) blocks, fibers = manager.callbacks(method) blocks[:before].each { |b| b.call(mc) } fibers.each { |f| f.resume(mc) } mc.return_value = super(*mc.argsopts, &mc.block) fibers.reverse_each { |f| f.resume(mc.return_value) } blocks[:after].each { |b| b.call(mc) } mc.return_value end end end