class Playwright::EventEmitterProxy
Public Class Methods
new(api, impl)
click to toggle source
@param src [PlaywrightApi] @param dest [EventEmitter]
# File lib/playwright/event_emitter_proxy.rb, line 7 def initialize(api, impl) @api = api @impl = impl @listeners = {} end
Public Instance Methods
off(event, callback)
click to toggle source
Calls superclass method
Playwright::EventEmitter#off
# File lib/playwright/event_emitter_proxy.rb, line 27 def off(event, callback) super if listener_count(event) == 0 unsubscribe(event) end end
on(event, callback)
click to toggle source
Calls superclass method
Playwright::EventEmitter#on
# File lib/playwright/event_emitter_proxy.rb, line 13 def on(event, callback) if listener_count(event) == 0 subscribe(event) end super end
once(event, callback)
click to toggle source
Calls superclass method
Playwright::EventEmitter#once
# File lib/playwright/event_emitter_proxy.rb, line 20 def once(event, callback) if listener_count(event) == 0 subscribe(event) end super end
Private Instance Methods
subscribe(event)
click to toggle source
# File lib/playwright/event_emitter_proxy.rb, line 34 def subscribe(event) @listeners[event] = ->(*args) { wrapped_args = args.map { |arg| ::Playwright::PlaywrightApi.wrap(arg) } emit(event, *wrapped_args) } @impl.on(event, @listeners[event]) end
unsubscribe(event)
click to toggle source
# File lib/playwright/event_emitter_proxy.rb, line 42 def unsubscribe(event) listener = @listeners.delete(event) if listener @impl.off(event, listener) end end