32 lines
759 B
Stylus
32 lines
759 B
Stylus
_thrown_hooks = {}
|
|
_caught_hooks = {}
|
|
|
|
RV-Utils__Hook--throw(name, callback)
|
|
if name in _thrown_hooks
|
|
hook = _thrown_hooks[name]
|
|
else
|
|
hook = {}
|
|
|
|
hook[selector()] = callback
|
|
_thrown_hooks[name] = hook
|
|
|
|
RV-Utils__Hook--catch(name, context)
|
|
if selector() in _caught_hooks
|
|
_catches = _caught_hooks[selector()]
|
|
else
|
|
_catches = {}
|
|
_catches[name] = context
|
|
_caught_hooks[selector()] = _catches
|
|
|
|
for name, hook in _thrown_hooks
|
|
if selector() in hook
|
|
hook[selector()](context)
|
|
|
|
_generate_hooks()
|
|
for catched_selector, catches in _caught_hooks
|
|
for name, context in catches
|
|
if name in _thrown_hooks
|
|
hook = _thrown_hooks[name]
|
|
for thrown_selector, callback in hook
|
|
{thrown_selector}{catched_selector}
|
|
callback(context) |