Module: Hey::Pubsub::Adapters::AsnAdapter

Defined in:
lib/hey/pubsub/adapters/asn_adapter.rb

Class Method Summary collapse

Class Method Details

.publish!(event) ⇒ Object



19
20
21
22
23
24
25
26
27
# File 'lib/hey/pubsub/adapters/asn_adapter.rb', line 19

def self.publish!(event)
  if block_given?
    ActiveSupport::Notifications.instrument(event.name, event.) do
      yield
    end
  else
    ActiveSupport::Notifications.instrument(event.name, event.)
  end
end

.subscribe!(event_name) ⇒ Object



5
6
7
8
9
10
11
12
13
14
15
16
17
# File 'lib/hey/pubsub/adapters/asn_adapter.rb', line 5

def self.subscribe!(event_name)
  if block_given?
    ActiveSupport::Notifications.subscribe(event_name) do |*args|
      asn_event = ActiveSupport::Notifications::Event.new(*args)
      event = Hey::Pubsub::Event.new(name: asn_event.name,
                                     started_at: asn_event.time,
                                     ended_at: asn_event.end,
                                     metadata: asn_event.payload.dup)

      yield(event.to_h)
    end
  end
end