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
- #emit(event, *args) ⇒ Object
- #off(event, callback) ⇒ Object
- #on(event, callback) ⇒ Object
- #once(event, callback) ⇒ Object
Instance Method Details
#emit(event, *args) ⇒ Object
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
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
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
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 |