playwright-ruby-client 0.6.4 → 0.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (52) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +26 -0
  3. data/documentation/docs/api/browser.md +10 -0
  4. data/documentation/docs/api/browser_context.md +10 -0
  5. data/documentation/docs/api/browser_type.md +53 -0
  6. data/documentation/docs/api/cdp_session.md +41 -1
  7. data/documentation/docs/api/element_handle.md +11 -2
  8. data/documentation/docs/api/frame.md +15 -1
  9. data/documentation/docs/api/page.md +33 -1
  10. data/documentation/docs/api/response.md +16 -0
  11. data/documentation/docs/api/route.md +20 -21
  12. data/documentation/docs/api/web_socket.md +38 -1
  13. data/documentation/docs/article/guides/launch_browser.md +2 -0
  14. data/documentation/docs/article/guides/rails_integration.md +2 -2
  15. data/documentation/docs/article/guides/semi_automation.md +67 -0
  16. data/documentation/docs/include/api_coverage.md +19 -13
  17. data/lib/playwright.rb +36 -3
  18. data/lib/playwright/channel_owners/browser.rb +5 -0
  19. data/lib/playwright/channel_owners/browser_context.rb +5 -0
  20. data/lib/playwright/channel_owners/browser_type.rb +18 -0
  21. data/lib/playwright/channel_owners/cdp_session.rb +19 -0
  22. data/lib/playwright/channel_owners/element_handle.rb +11 -4
  23. data/lib/playwright/channel_owners/frame.rb +14 -2
  24. data/lib/playwright/channel_owners/page.rb +21 -2
  25. data/lib/playwright/channel_owners/response.rb +9 -1
  26. data/lib/playwright/channel_owners/web_socket.rb +87 -0
  27. data/lib/playwright/connection.rb +2 -4
  28. data/lib/playwright/transport.rb +0 -1
  29. data/lib/playwright/version.rb +2 -2
  30. data/lib/playwright/web_socket_client.rb +164 -0
  31. data/lib/playwright/web_socket_transport.rb +104 -0
  32. data/lib/playwright_api/android.rb +6 -6
  33. data/lib/playwright_api/android_device.rb +8 -8
  34. data/lib/playwright_api/browser.rb +7 -7
  35. data/lib/playwright_api/browser_context.rb +7 -7
  36. data/lib/playwright_api/browser_type.rb +9 -8
  37. data/lib/playwright_api/cdp_session.rb +30 -8
  38. data/lib/playwright_api/console_message.rb +6 -6
  39. data/lib/playwright_api/dialog.rb +6 -6
  40. data/lib/playwright_api/element_handle.rb +17 -11
  41. data/lib/playwright_api/frame.rb +20 -9
  42. data/lib/playwright_api/js_handle.rb +6 -6
  43. data/lib/playwright_api/page.rb +28 -17
  44. data/lib/playwright_api/playwright.rb +6 -6
  45. data/lib/playwright_api/request.rb +6 -6
  46. data/lib/playwright_api/response.rb +15 -10
  47. data/lib/playwright_api/route.rb +11 -6
  48. data/lib/playwright_api/selectors.rb +6 -6
  49. data/lib/playwright_api/web_socket.rb +28 -6
  50. data/lib/playwright_api/worker.rb +6 -6
  51. data/playwright.gemspec +2 -1
  52. metadata +37 -18
@@ -93,20 +93,20 @@ module Playwright
93
93
 
94
94
  # -- inherited from EventEmitter --
95
95
  # @nodoc
96
- def once(event, callback)
97
- event_emitter_proxy.once(event, callback)
96
+ def off(event, callback)
97
+ event_emitter_proxy.off(event, callback)
98
98
  end
99
99
 
100
100
  # -- inherited from EventEmitter --
101
101
  # @nodoc
102
- def on(event, callback)
103
- event_emitter_proxy.on(event, callback)
102
+ def once(event, callback)
103
+ event_emitter_proxy.once(event, callback)
104
104
  end
105
105
 
106
106
  # -- inherited from EventEmitter --
107
107
  # @nodoc
108
- def off(event, callback)
109
- event_emitter_proxy.off(event, callback)
108
+ def on(event, callback)
109
+ event_emitter_proxy.on(event, callback)
110
110
  end
111
111
 
112
112
  private def event_emitter_proxy
@@ -130,20 +130,20 @@ module Playwright
130
130
 
131
131
  # -- inherited from EventEmitter --
132
132
  # @nodoc
133
- def once(event, callback)
134
- event_emitter_proxy.once(event, callback)
133
+ def off(event, callback)
134
+ event_emitter_proxy.off(event, callback)
135
135
  end
136
136
 
137
137
  # -- inherited from EventEmitter --
138
138
  # @nodoc
139
- def on(event, callback)
140
- event_emitter_proxy.on(event, callback)
139
+ def once(event, callback)
140
+ event_emitter_proxy.once(event, callback)
141
141
  end
142
142
 
143
143
  # -- inherited from EventEmitter --
144
144
  # @nodoc
145
- def off(event, callback)
146
- event_emitter_proxy.off(event, callback)
145
+ def on(event, callback)
146
+ event_emitter_proxy.on(event, callback)
147
147
  end
148
148
 
149
149
  private def event_emitter_proxy
@@ -39,6 +39,16 @@ module Playwright
39
39
  wrap_impl(@impl.request)
40
40
  end
41
41
 
42
+ # Returns SSL and other security information.
43
+ def security_details
44
+ wrap_impl(@impl.security_details)
45
+ end
46
+
47
+ # Returns the IP address and port of the server.
48
+ def server_addr
49
+ wrap_impl(@impl.server_addr)
50
+ end
51
+
42
52
  # Contains the status code of the response (e.g., 200 for a success).
43
53
  def status
44
54
  wrap_impl(@impl.status)
@@ -60,13 +70,14 @@ module Playwright
60
70
  end
61
71
 
62
72
  # @nodoc
63
- def after_initialize
64
- wrap_impl(@impl.after_initialize)
73
+ def ok?
74
+ wrap_impl(@impl.ok?)
65
75
  end
66
76
 
77
+ # -- inherited from EventEmitter --
67
78
  # @nodoc
68
- def ok?
69
- wrap_impl(@impl.ok?)
79
+ def off(event, callback)
80
+ event_emitter_proxy.off(event, callback)
70
81
  end
71
82
 
72
83
  # -- inherited from EventEmitter --
@@ -81,12 +92,6 @@ module Playwright
81
92
  event_emitter_proxy.on(event, callback)
82
93
  end
83
94
 
84
- # -- inherited from EventEmitter --
85
- # @nodoc
86
- def off(event, callback)
87
- event_emitter_proxy.off(event, callback)
88
- end
89
-
90
95
  private def event_emitter_proxy
91
96
  @event_emitter_proxy ||= EventEmitterProxy.new(self, @impl)
92
97
  end
@@ -51,6 +51,11 @@ module Playwright
51
51
  wrap_impl(@impl.fulfill(body: unwrap_impl(body), contentType: unwrap_impl(contentType), headers: unwrap_impl(headers), path: unwrap_impl(path), status: unwrap_impl(status)))
52
52
  end
53
53
 
54
+ # Continues route's request with optional overrides and intercepts response.
55
+ def intercept(headers: nil, method: nil, postData: nil, url: nil)
56
+ raise NotImplementedError.new('intercept is not implemented yet.')
57
+ end
58
+
54
59
  # A request to be routed.
55
60
  def request
56
61
  wrap_impl(@impl.request)
@@ -58,20 +63,20 @@ module Playwright
58
63
 
59
64
  # -- inherited from EventEmitter --
60
65
  # @nodoc
61
- def once(event, callback)
62
- event_emitter_proxy.once(event, callback)
66
+ def off(event, callback)
67
+ event_emitter_proxy.off(event, callback)
63
68
  end
64
69
 
65
70
  # -- inherited from EventEmitter --
66
71
  # @nodoc
67
- def on(event, callback)
68
- event_emitter_proxy.on(event, callback)
72
+ def once(event, callback)
73
+ event_emitter_proxy.once(event, callback)
69
74
  end
70
75
 
71
76
  # -- inherited from EventEmitter --
72
77
  # @nodoc
73
- def off(event, callback)
74
- event_emitter_proxy.off(event, callback)
78
+ def on(event, callback)
79
+ event_emitter_proxy.on(event, callback)
75
80
  end
76
81
 
77
82
  private def event_emitter_proxy
@@ -14,20 +14,20 @@ module Playwright
14
14
 
15
15
  # -- inherited from EventEmitter --
16
16
  # @nodoc
17
- def once(event, callback)
18
- event_emitter_proxy.once(event, callback)
17
+ def off(event, callback)
18
+ event_emitter_proxy.off(event, callback)
19
19
  end
20
20
 
21
21
  # -- inherited from EventEmitter --
22
22
  # @nodoc
23
- def on(event, callback)
24
- event_emitter_proxy.on(event, callback)
23
+ def once(event, callback)
24
+ event_emitter_proxy.once(event, callback)
25
25
  end
26
26
 
27
27
  # -- inherited from EventEmitter --
28
28
  # @nodoc
29
- def off(event, callback)
30
- event_emitter_proxy.off(event, callback)
29
+ def on(event, callback)
30
+ event_emitter_proxy.on(event, callback)
31
31
  end
32
32
 
33
33
  private def event_emitter_proxy
@@ -4,18 +4,18 @@ module Playwright
4
4
 
5
5
  # Indicates that the web socket has been closed.
6
6
  def closed?
7
- raise NotImplementedError.new('closed? is not implemented yet.')
7
+ wrap_impl(@impl.closed?)
8
8
  end
9
9
 
10
10
  # Contains the URL of the WebSocket.
11
11
  def url
12
- raise NotImplementedError.new('url is not implemented yet.')
12
+ wrap_impl(@impl.url)
13
13
  end
14
14
 
15
15
  # Waits for event to fire and passes its value into the predicate function. Returns when the predicate returns truthy
16
16
  # value. Will throw an error if the webSocket is closed before the event is fired. Returns the event data value.
17
- def expect_event(event, predicate: nil, timeout: nil)
18
- raise NotImplementedError.new('expect_event is not implemented yet.')
17
+ def expect_event(event, predicate: nil, timeout: nil, &block)
18
+ wrap_impl(@impl.expect_event(unwrap_impl(event), predicate: unwrap_impl(predicate), timeout: unwrap_impl(timeout), &wrap_block_call(block)))
19
19
  end
20
20
 
21
21
  # > NOTE: In most cases, you should use [`method: WebSocket.waitForEvent`].
@@ -23,8 +23,30 @@ module Playwright
23
23
  # Waits for given `event` to fire. If predicate is provided, it passes event's value into the `predicate` function and
24
24
  # waits for `predicate(event)` to return a truthy value. Will throw an error if the socket is closed before the `event` is
25
25
  # fired.
26
- def wait_for_event(event, predicate: nil, timeout: nil)
27
- raise NotImplementedError.new('wait_for_event is not implemented yet.')
26
+ def wait_for_event(event, predicate: nil, timeout: nil, &block)
27
+ wrap_impl(@impl.wait_for_event(unwrap_impl(event), predicate: unwrap_impl(predicate), timeout: unwrap_impl(timeout), &wrap_block_call(block)))
28
+ end
29
+
30
+ # -- inherited from EventEmitter --
31
+ # @nodoc
32
+ def off(event, callback)
33
+ event_emitter_proxy.off(event, callback)
34
+ end
35
+
36
+ # -- inherited from EventEmitter --
37
+ # @nodoc
38
+ def once(event, callback)
39
+ event_emitter_proxy.once(event, callback)
40
+ end
41
+
42
+ # -- inherited from EventEmitter --
43
+ # @nodoc
44
+ def on(event, callback)
45
+ event_emitter_proxy.on(event, callback)
46
+ end
47
+
48
+ private def event_emitter_proxy
49
+ @event_emitter_proxy ||= EventEmitterProxy.new(self, @impl)
28
50
  end
29
51
  end
30
52
  end
@@ -45,20 +45,20 @@ module Playwright
45
45
 
46
46
  # -- inherited from EventEmitter --
47
47
  # @nodoc
48
- def once(event, callback)
49
- event_emitter_proxy.once(event, callback)
48
+ def off(event, callback)
49
+ event_emitter_proxy.off(event, callback)
50
50
  end
51
51
 
52
52
  # -- inherited from EventEmitter --
53
53
  # @nodoc
54
- def on(event, callback)
55
- event_emitter_proxy.on(event, callback)
54
+ def once(event, callback)
55
+ event_emitter_proxy.once(event, callback)
56
56
  end
57
57
 
58
58
  # -- inherited from EventEmitter --
59
59
  # @nodoc
60
- def off(event, callback)
61
- event_emitter_proxy.off(event, callback)
60
+ def on(event, callback)
61
+ event_emitter_proxy.on(event, callback)
62
62
  end
63
63
 
64
64
  private def event_emitter_proxy
data/playwright.gemspec CHANGED
@@ -30,11 +30,12 @@ Gem::Specification.new do |spec|
30
30
  spec.add_development_dependency 'bundler', '~> 2.2.3'
31
31
  spec.add_development_dependency 'chunky_png'
32
32
  spec.add_development_dependency 'dry-inflector'
33
+ spec.add_development_dependency 'faye-websocket'
33
34
  spec.add_development_dependency 'pry-byebug'
35
+ spec.add_development_dependency 'puma'
34
36
  spec.add_development_dependency 'rake', '~> 13.0.3'
35
37
  spec.add_development_dependency 'rspec', '~> 3.10.0 '
36
38
  spec.add_development_dependency 'rspec_junit_formatter' # for CircleCI.
37
39
  spec.add_development_dependency 'rubocop-rspec'
38
40
  spec.add_development_dependency 'sinatra'
39
- spec.add_development_dependency 'webrick'
40
41
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: playwright-ruby-client
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.6.4
4
+ version: 0.8.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - YusukeIwaki
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2021-06-08 00:00:00.000000000 Z
11
+ date: 2021-07-09 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: concurrent-ruby
@@ -80,6 +80,20 @@ dependencies:
80
80
  - - ">="
81
81
  - !ruby/object:Gem::Version
82
82
  version: '0'
83
+ - !ruby/object:Gem::Dependency
84
+ name: faye-websocket
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - ">="
88
+ - !ruby/object:Gem::Version
89
+ version: '0'
90
+ type: :development
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - ">="
95
+ - !ruby/object:Gem::Version
96
+ version: '0'
83
97
  - !ruby/object:Gem::Dependency
84
98
  name: pry-byebug
85
99
  requirement: !ruby/object:Gem::Requirement
@@ -94,6 +108,20 @@ dependencies:
94
108
  - - ">="
95
109
  - !ruby/object:Gem::Version
96
110
  version: '0'
111
+ - !ruby/object:Gem::Dependency
112
+ name: puma
113
+ requirement: !ruby/object:Gem::Requirement
114
+ requirements:
115
+ - - ">="
116
+ - !ruby/object:Gem::Version
117
+ version: '0'
118
+ type: :development
119
+ prerelease: false
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ requirements:
122
+ - - ">="
123
+ - !ruby/object:Gem::Version
124
+ version: '0'
97
125
  - !ruby/object:Gem::Dependency
98
126
  name: rake
99
127
  requirement: !ruby/object:Gem::Requirement
@@ -164,20 +192,6 @@ dependencies:
164
192
  - - ">="
165
193
  - !ruby/object:Gem::Version
166
194
  version: '0'
167
- - !ruby/object:Gem::Dependency
168
- name: webrick
169
- requirement: !ruby/object:Gem::Requirement
170
- requirements:
171
- - - ">="
172
- - !ruby/object:Gem::Version
173
- version: '0'
174
- type: :development
175
- prerelease: false
176
- version_requirements: !ruby/object:Gem::Requirement
177
- requirements:
178
- - - ">="
179
- - !ruby/object:Gem::Version
180
- version: '0'
181
195
  description:
182
196
  email:
183
197
  - q7w8e9w8q7w8e9@yahoo.co.jp
@@ -231,6 +245,7 @@ files:
231
245
  - documentation/docs/article/guides/launch_browser.md
232
246
  - documentation/docs/article/guides/rails_integration.md
233
247
  - documentation/docs/article/guides/recording_video.md
248
+ - documentation/docs/article/guides/semi_automation.md
234
249
  - documentation/docs/include/api_coverage.md
235
250
  - documentation/docusaurus.config.js
236
251
  - documentation/package.json
@@ -259,6 +274,7 @@ files:
259
274
  - lib/playwright/channel_owners/browser.rb
260
275
  - lib/playwright/channel_owners/browser_context.rb
261
276
  - lib/playwright/channel_owners/browser_type.rb
277
+ - lib/playwright/channel_owners/cdp_session.rb
262
278
  - lib/playwright/channel_owners/console_message.rb
263
279
  - lib/playwright/channel_owners/dialog.rb
264
280
  - lib/playwright/channel_owners/electron.rb
@@ -272,6 +288,7 @@ files:
272
288
  - lib/playwright/channel_owners/route.rb
273
289
  - lib/playwright/channel_owners/selectors.rb
274
290
  - lib/playwright/channel_owners/stream.rb
291
+ - lib/playwright/channel_owners/web_socket.rb
275
292
  - lib/playwright/channel_owners/worker.rb
276
293
  - lib/playwright/connection.rb
277
294
  - lib/playwright/download.rb
@@ -300,6 +317,8 @@ files:
300
317
  - lib/playwright/version.rb
301
318
  - lib/playwright/video.rb
302
319
  - lib/playwright/wait_helper.rb
320
+ - lib/playwright/web_socket_client.rb
321
+ - lib/playwright/web_socket_transport.rb
303
322
  - lib/playwright_api/accessibility.rb
304
323
  - lib/playwright_api/android.rb
305
324
  - lib/playwright_api/android_device.rb
@@ -348,8 +367,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
348
367
  - !ruby/object:Gem::Version
349
368
  version: '0'
350
369
  requirements: []
351
- rubygems_version: 3.2.15
370
+ rubygems_version: 3.2.22
352
371
  signing_key:
353
372
  specification_version: 4
354
- summary: The Ruby binding of playwright driver 1.12.0
373
+ summary: The Ruby binding of playwright driver 1.13.0
355
374
  test_files: []