Refactor Dispatcher

This commit is contained in:
Thibault Jouan
2015-04-09 03:49:26 +00:00
parent 811354b683
commit 0ad00f3b77
2 changed files with 7 additions and 9 deletions

View File

@@ -3,21 +3,20 @@ module Uh
class Dispatcher
attr_reader :hooks
def initialize hooks = Hash.new
@hooks = hooks
def initialize
@hooks = Hash.new { |h, k| h[k] = [] }
end
def [] *key
@hooks[translate_key key] or []
@hooks[translate_key key]
end
def on *key, &block
@hooks[translate_key key] ||= []
@hooks[translate_key key] << block
end
def emit *key
@hooks[translate_key key].tap { |o| o.each { |e| e.call } if o }
@hooks[translate_key key].each { |e| e.call }
end