Module: Playwright::EventEmitter

Included in:
Channel, ChannelOwner
Defined in:
lib/playwright/event_emitter.rb

Overview

A subset of Events/EventEmitter in Node.js

Instance Method Summary collapse

Instance Method Details

#emit(event, *args) ⇒ Object

Parameters:

  • event (String)


24
25
26
27
28
29
# File 'lib/playwright/event_emitter.rb', line 24

def emit(event, *args)
  (@__event_emitter ||= {})[event.to_s]&.each do |callback|
    callback.call(*args)
  end
  self
end

#off(event, callback) ⇒ Object

Parameters:

  • event (String)
  • callback (Proc)

Raises:

  • (ArgumentError)


52
53
54
55
56
57
58
59
60
# File 'lib/playwright/event_emitter.rb', line 52

def off(event, callback)
  raise ArgumentError.new('callback must not be nil') if callback.nil?

  cb = (@__event_emitter_callback ||= {})["#{event}/#{callback.object_id}"]
  if cb
    (@__event_emitter ||= {})[event.to_s]&.delete(cb)
  end
  self
end

#on(event, callback) ⇒ Object

Parameters:

  • event (String)
  • callback (Proc)

Raises:

  • (ArgumentError)


33
34
35
36
37
38
# File 'lib/playwright/event_emitter.rb', line 33

def on(event, callback)
  raise ArgumentError.new('callback must not be nil') if callback.nil?
  cb = (@__event_emitter_callback ||= {})["#{event}/#{callback.object_id}"] ||= EventEmitterCallback.new(callback)
  ((@__event_emitter ||= {})[event.to_s] ||= Set.new) << cb
  self
end

#once(event, callback) ⇒ Object

Parameters:

  • event (String)
  • callback (Proc)

Raises:

  • (ArgumentError)


42
43
44
45
46
47
48
# File 'lib/playwright/event_emitter.rb', line 42

def once(event, callback)
  raise ArgumentError.new('callback must not be nil') if callback.nil?

  cb = (@__event_emitter_callback ||= {})["#{event}/once/#{callback.object_id}"] ||= EventEmitterOnceCallback.new(callback)
  ((@__event_emitter ||= {})[event.to_s] ||= Set.new) << cb
  self
end