Class: Puppeteer::Bidi::Core::EventEmitter

Inherits:
Object
  • Object
show all
Defined in:
lib/puppeteer/bidi/core/event_emitter.rb,
sig/puppeteer/bidi/core/event_emitter.rbs

Overview

EventEmitter provides event subscription and emission capabilities Similar to Node.js EventEmitter but simpler

Instance Method Summary collapse

Constructor Details

#initializeEventEmitter

Returns a new instance of EventEmitter.



11
12
13
14
# File 'lib/puppeteer/bidi/core/event_emitter.rb', line 11

def initialize
  @listeners = Hash.new { |h, k| h[k] = [] }
  @disposed = false
end

Instance Method Details

#disposevoid

This method returns an undefined value.

Dispose the event emitter



80
81
82
83
# File 'lib/puppeteer/bidi/core/event_emitter.rb', line 80

def dispose
  @disposed = true
  @listeners.clear
end

#disposed?Boolean

Returns:

  • (Boolean)


86
87
88
# File 'lib/puppeteer/bidi/core/event_emitter.rb', line 86

def disposed?
  @disposed
end

#emit(event, data = nil) ⇒ void

This method returns an undefined value.

Emit an event to all registered listeners

Parameters:

  • event (Symbol, String)
  • data (Object) (defaults to: nil)


66
67
68
69
70
71
72
73
74
75
76
# File 'lib/puppeteer/bidi/core/event_emitter.rb', line 66

def emit(event, data = nil)
  return if @disposed
  listeners = @listeners[event.to_sym].dup
  listeners.each do |listener|
    begin
      listener.call(data)
    rescue => e
      warn "Error in event listener for #{event}: #{e.message}\n#{e.backtrace.join("\n")}"
    end
  end
end

#off(event, &block) ⇒ void

This method returns an undefined value.

Remove an event listener

Parameters:

  • event (Symbol, String)


42
43
44
45
46
47
48
49
# File 'lib/puppeteer/bidi/core/event_emitter.rb', line 42

def off(event, &block)
  event_sym = event.to_sym
  if block
    @listeners[event_sym].delete(block)
  else
    @listeners.delete(event_sym)
  end
end

#on(event) {|arg0| ... } ⇒ void

This method returns an undefined value.

Register an event listener

Parameters:

  • event (Symbol, String)

Yields:

Yield Parameters:

  • arg0 (Object)

Yield Returns:

  • (void)


20
21
22
23
# File 'lib/puppeteer/bidi/core/event_emitter.rb', line 20

def on(event, &block)
  return if @disposed
  @listeners[event.to_sym] << block
end

#once(event) {|arg0| ... } ⇒ void

This method returns an undefined value.

Register a one-time event listener

Parameters:

  • event (Symbol, String)

Yields:

Yield Parameters:

  • arg0 (Object)

Yield Returns:

  • (void)


29
30
31
32
33
34
35
36
# File 'lib/puppeteer/bidi/core/event_emitter.rb', line 29

def once(event, &block)
  return if @disposed
  wrapper = lambda do |*args|
    off(event, &wrapper)
    block.call(*args)
  end
  on(event, &wrapper)
end

#remove_all_listeners(event = nil) ⇒ void

This method returns an undefined value.

Remove all listeners for an event or all events

Parameters:

  • event (?(Symbol | String), nil) (defaults to: nil)


54
55
56
57
58
59
60
# File 'lib/puppeteer/bidi/core/event_emitter.rb', line 54

def remove_all_listeners(event = nil)
  if event
    @listeners.delete(event.to_sym)
  else
    @listeners.clear
  end
end