58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
|
# File 'lib/super/inline_callback.rb', line 58
def with_inline_callbacks
action = params[:action].to_sym
callbacks = self.class.inline_callbacks_for(action)
each_node = -> (&b) { callbacks.each_key(&b) }
each_child = -> (cb, &b) { callbacks[cb].each(&b) }
yield_called = false
TSort.tsort_each(each_node, each_child) do |callback|
if callback == :yield
yield_called = true
yield
else
send(callback)
end
end
if !yield_called
yield
end
end
|