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)


37
38
39
40
41
42
# File 'lib/playwright/event_emitter.rb', line 37

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)


65
66
67
68
69
70
71
72
73
# File 'lib/playwright/event_emitter.rb', line 65

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)


46
47
48
49
50
51
# File 'lib/playwright/event_emitter.rb', line 46

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)


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

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