module Firstclasspostcodes::Events
Public Instance Methods
emit(event_name, *args)
click to toggle source
# File lib/firstclasspostcodes/events.rb, line 19 def emit(event_name, *args) events[event_name.to_sym]&.each { |handler| handler.call(*args) } end
events()
click to toggle source
# File lib/firstclasspostcodes/events.rb, line 23 def events @events ||= {} end
off(event_name, handler_id)
click to toggle source
# File lib/firstclasspostcodes/events.rb, line 12 def off(event_name, handler_id) events[event_name.to_sym]&.filter! do |handler| handler.object_id != handler_id end handler_id end
on(event_name, &handler)
click to toggle source
# File lib/firstclasspostcodes/events.rb, line 5 def on(event_name, &handler) event_symbol = event_name.to_sym events[event_symbol] ||= [] events[event_symbol].push(handler) handler.object_id end