Class: Playwright::Connection
- Inherits:
-
Object
- Object
- Playwright::Connection
- Defined in:
- lib/playwright/connection.rb
Overview
Instance Method Summary collapse
- #async_run ⇒ Object
- #async_send_message_to_server(guid, method, params, metadata: nil) ⇒ Object
-
#initialize(transport) ⇒ Connection
constructor
A new instance of Connection.
- #initialize_playwright ⇒ Object
- #mark_as_remote ⇒ Object
- #remote? ⇒ Boolean
- #send_message_to_server(guid, method, params, metadata: nil) ⇒ Object
- #stop ⇒ Object
Constructor Details
#initialize(transport) ⇒ Connection
Returns a new instance of Connection.
8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
# File 'lib/playwright/connection.rb', line 8 def initialize(transport) @transport = transport @transport. do || dispatch() end @transport.on_driver_crashed do @callbacks.each_value do |callback| callback.reject(::Playwright::DriverCrashedError.new) end raise ::Playwright::DriverCrashedError.new end @objects = {} # Hash[ guid => ChannelOwner ] @waiting_for_object = {} # Hash[ guid => Promise<ChannelOwner> ] @callbacks = {} # Hash [ guid => Promise<ChannelOwner> ] @root_object = RootChannelOwner.new(self) @remote = false end |
Instance Method Details
#async_run ⇒ Object
35 36 37 |
# File 'lib/playwright/connection.rb', line 35 def async_run @transport.async_run end |
#async_send_message_to_server(guid, method, params, metadata: nil) ⇒ Object
48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 |
# File 'lib/playwright/connection.rb', line 48 def (guid, method, params, metadata: nil) callback = Concurrent::Promises.resolvable_future with_generated_id do |id| # register callback promise object first. # @see https://github.com/YusukeIwaki/puppeteer-ruby/pull/34 @callbacks[id] = callback = { id: id, guid: guid, method: method, params: replace_channels_with_guids(params), metadata: || {}, } begin @transport.() rescue => err @callbacks.delete(id) callback.reject(err) raise unless err.is_a?(Transport::AlreadyDisconnectedError) end end callback end |
#initialize_playwright ⇒ Object
43 44 45 46 |
# File 'lib/playwright/connection.rb', line 43 def initialize_playwright result = ('', 'initialize', { sdkLanguage: 'ruby' }) ChannelOwners::Playwright.from(result['playwright']) end |
#mark_as_remote ⇒ Object
27 28 29 |
# File 'lib/playwright/connection.rb', line 27 def mark_as_remote @remote = true end |
#remote? ⇒ Boolean
31 32 33 |
# File 'lib/playwright/connection.rb', line 31 def remote? @remote end |
#send_message_to_server(guid, method, params, metadata: nil) ⇒ Object
76 77 78 |
# File 'lib/playwright/connection.rb', line 76 def (guid, method, params, metadata: nil) (guid, method, params, metadata: ).value! end |
#stop ⇒ Object
39 40 41 |
# File 'lib/playwright/connection.rb', line 39 def stop @transport.stop end |