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