Skip to content

Instantly share code, notes, and snippets.

@dobryakov
Created February 4, 2016 16:37
Show Gist options
  • Save dobryakov/e8a2442df37d817e406e to your computer and use it in GitHub Desktop.
Save dobryakov/e8a2442df37d817e406e to your computer and use it in GitHub Desktop.
delayed jobs observer (assert_triggering)
def initialize
@events = {}
ActiveSupport::Notifications.subscribe do |*args|
event_name = args[0]
payload = args[4]
@events[event_name] = {} if @events[event_name].nil?
@events[event_name]['pointer'] = 0 if @events[event_name]['pointer'].nil?
@events[event_name]['history'] = [] if @events[event_name]['history'].nil?
@events[event_name]['history'].push ({event_name: event_name, payload: payload})
end
super
end
def events
@events
end
def assert_triggering(event_name)
if @events[event_name].nil? || @events[event_name]['history'].count == @events[event_name]['pointer']
false
else
@events[event_name]['pointer'] = @events[event_name]['history'].count
true
end
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment