21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
|
# File 'lib/callmeback.rb', line 21
def callback_binding
self.class.callmeback_methods.each do |callback_prefix, callback_array|
callback_array.each do |callback_hash|
callback_hash.each do |binded, callbacks|
[callbacks].flatten.each do |callback|
binded_suffix = "method_#{self.class.callmeback_method_index}"
self.class.callmeback_method_index += 1
prefixed_wrapped_binded = "callmeback_wrapped_#{binded_suffix}"
prefixed_unwrapped_binded = "callmeback_unwrapped_#{binded_suffix}"
class_eval do
define_method prefixed_wrapped_binded do
class_eval do
define_callbacks prefixed_wrapped_binded
set_callback prefixed_wrapped_binded, callback_prefix, callback
end
run_callbacks prefixed_wrapped_binded do
send prefixed_unwrapped_binded
end
end
alias_method prefixed_unwrapped_binded, binded
alias_method binded, prefixed_wrapped_binded
end
end
end
end
end
end
|