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