lib/resugan/kernel.rb in resugan-0.1.10 vs lib/resugan/kernel.rb in resugan-0.1.11

- old
+ new

@@ -38,30 +38,35 @@ def self.register(event, &block) register_with_namespace("", event, block) end - def self.register_with_namespace(namespace, event, listener_id = nil, block) + def self.register_with_namespace(namespaces, event_type, listener_id = nil, block) @listener_ids = {} unless @listener_ids @_listener = {} unless @_listener - return self if listener_id && @listener_ids["#{namespace}_#{listener_id}"] + namespaces = namespaces.is_a?(Array) ? namespaces : [namespaces] + namespaces.each do |n| + next if listener_id && @listener_ids["#{n}_#{listener_id}"] - event = "#{namespace}_#{event}".to_sym + event = "#{n}_#{event_type}".to_sym - unless @_listener[event] - @_listener[event] = [block] - else - @_listener[event] << block + unless @_listener[event] + @_listener[event] = [block] + else + @_listener[event] << block + end + + @listener_ids["#{n}_#{listener_id}"] = block if listener_id end - @listener_ids["#{namespace}_#{listener_id}"] = block if listener_id - self end def self.invoke(namespace, event, payload = []) event = "#{namespace}_#{event}".to_sym + puts "invoke" + p @_listener if @_listener && @_listener[event] @_listener[event].each do |_listener| _listener.call(payload.map { |p| p[:params] || p['params'] }) end end