lib/jace/registry.rb in jace-0.1.0 vs lib/jace/registry.rb in jace-0.1.1

- old
+ new

@@ -38,13 +38,12 @@ # # registry.register(:the_event, :before) do # do_something_before # end def register(event, instant = :after, &block) - registry[event.to_sym] ||= {} - registry[event.to_sym][instant] ||= [] - registry[event.to_sym][instant] << block + registry[event.to_sym] ||= Dispatcher.new + registry[event.to_sym].send(instant) << block end # Triggers an event # @param event [Symbol,String] event to be triggered # @param context [Object] context where the events will be ran @@ -70,9 +69,15 @@ # # # puts 'doing something before', # # puts 'doing something middle', # # puts 'doing something after' def trigger(event, context, &block) - Dispatcher.new(registry[event.to_sym] || {}).dispatch(context, &block) + dispatcher_for(event).dispatch(context, &block) + end + + private + + def dispatcher_for(event) + registry[event.to_sym] || Dispatcher.new end end end