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
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
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
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
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 |