module Tracker::Registry
Public Instance Methods
on(event, &proc)
click to toggle source
# File lib/tracker/registry.rb, line 26 def on(event, &proc) expect! event => /(insert|delete|update)$/ register_callback event, &proc end
publish!(event_name, *args)
click to toggle source
# File lib/tracker/registry.rb, line 39 def publish!(event_name, *args) callbacks(event_name).each do |callback| callback.call(*args) end end
reset!()
click to toggle source
# File lib/tracker/registry.rb, line 5 def reset! @registrations = nil end
track(table, &proc)
click to toggle source
# File lib/tracker/registry.rb, line 31 def track(table, &proc) register_callback table, &proc end
tracks?(table)
click to toggle source
# File lib/tracker/registry.rb, line 35 def tracks?(table) !callbacks(table).empty? end
Private Instance Methods
callbacks(event)
click to toggle source
# File lib/tracker/registry.rb, line 20 def callbacks(event) registrations[event] end
register_callback(event, &proc)
click to toggle source
# File lib/tracker/registry.rb, line 15 def register_callback(event, &proc) STDERR.puts "Starting to track #{event.inspect}" callbacks(event) << proc end
registrations()
click to toggle source
# File lib/tracker/registry.rb, line 11 def registrations @registrations ||= Hash.new { |h, k| h[k] = [] } end