module Hooks

def run_hook(name, *args)

block.call("i want ice cream!")
desert("i want ice cream!")

will invoke the callbacks like

cat.run_hook :after_dinner, "i want ice cream!"

Example:

be passed to the callback.
Runs the callbacks (method/block) for the specified hook +name+. Additional arguments will
def run_hook(name, *args)
  self.class.run_hook_for(name, self, *args)
end