Class: AssertTriggering::DelayedJobObserver

Inherits:
Object
  • Object
show all
Defined in:
lib/assert_triggering.rb

Instance Method Summary collapse

Constructor Details

#initializeDelayedJobObserver

Returns a new instance of DelayedJobObserver.



5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
# File 'lib/assert_triggering.rb', line 5

def initialize

  self.flush

  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

Instance Method Details

#assert_triggered(event_name) ⇒ Object



30
31
32
33
34
35
36
37
# File 'lib/assert_triggering.rb', line 30

def assert_triggered(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

#eventsObject



22
23
24
# File 'lib/assert_triggering.rb', line 22

def events
  @events
end

#flushObject



26
27
28
# File 'lib/assert_triggering.rb', line 26

def flush
  @events = {}
end