Class: Realm::EventRouter::InternalLoopGateway

Inherits:
Gateway
  • Object
show all
Defined in:
lib/realm/event_router/internal_loop_gateway.rb

Class Method Summary collapse

Instance Method Summary collapse

Methods inherited from Gateway

#cleanup, #queues, #register, #worker

Constructor Details

#initialize(isolated: false) ⇒ InternalLoopGateway

Returns a new instance of InternalLoopGateway.



12
13
14
15
16
17
# File 'lib/realm/event_router/internal_loop_gateway.rb', line 12

def initialize(isolated: false, **)
  super
  @listener_map = {}
  @isolated = isolated
  gateways << self
end

Class Method Details

.auto_register_on_initObject



8
9
10
# File 'lib/realm/event_router/internal_loop_gateway.rb', line 8

def self.auto_register_on_init
  true
end

Instance Method Details

#add_listener(event_type, listener) ⇒ Object



19
20
21
# File 'lib/realm/event_router/internal_loop_gateway.rb', line 19

def add_listener(event_type, listener)
  (@listener_map[event_type] ||= []) << listener
end

#purge!Object



29
30
31
# File 'lib/realm/event_router/internal_loop_gateway.rb', line 29

def purge!
  gateways.clear
end

#trigger(event_type, attributes = {}) ⇒ Object



23
24
25
26
27
# File 'lib/realm/event_router/internal_loop_gateway.rb', line 23

def trigger(event_type, attributes = {})
  create_event(event_type, attributes).tap do |event|
    gateways.each { |gateway| gateway.handle(event_type, event) }
  end
end