puppeteer-ruby 0.41.0 → 0.42.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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: ccfb160c40e2ef032c0da17ab4b1cc9fe610d4caf42f236042ea0757c9e270e7
4
- data.tar.gz: 95a3a457aa850116bc3062e9507ef53bd10e1d451ebeb4703cf9a6f5d663b9c5
3
+ metadata.gz: 6b06e1f5f867ef4e7d648e93becc953f660bb707b29019ffe6e93f8e9f02acc4
4
+ data.tar.gz: ff082c6ba661e0f2d8b0d8bc0f92f5aeecf036f9edcd7bb6f8937db4fd019947
5
5
  SHA512:
6
- metadata.gz: b65da9f89cc8cfeea05e4e0835f919aab382f47e380d27c1e0a439c70cb0b0b7d9e8519a3361ad545e0c5115216d698740e46f20c96960cf96496ee22ac374ea
7
- data.tar.gz: 81c846c795efd81bc10af84b65e02a6dfc3a52d9be2cc5f21cc7bc313e84fcd4ef3fed692bc1bc616389bc43f2a06a6944c2353aa8f8c3a614bb8a4c8ef2097c
6
+ metadata.gz: 19b67fb8ef13bac90538e8755905749427a7131bba5088c16f512b51d72833d80ee296ea7537b5122bb531a28d3c95c7924cd199dc6343ab17a1b3d2c391af9b
7
+ data.tar.gz: c65cb7780075ddea13c60b6c668b8a9a6d53627a8dbfa263f08694777ff10f1a3f3a98eeb2596a6497e0274a3a6d6aafc24a215ee6873c07485dc400444c0c17
data/CHANGELOG.md CHANGED
@@ -1,7 +1,11 @@
1
- ### main [[diff](https://github.com/YusukeIwaki/puppeteer-ruby/compare/0.41.0...main)]
1
+ ### main [[diff](https://github.com/YusukeIwaki/puppeteer-ruby/compare/0.42.0...main)]
2
2
 
3
3
  - xxx
4
4
 
5
+ ### 0.42.0 [[diff](https://github.com/YusukeIwaki/puppeteer-ruby/compare/0.41.0...0.42.0)]
6
+
7
+ - Port Puppeteer v15.3-v15.5 features, including `Frame#page`
8
+
5
9
  ### 0.41.0 [[diff](https://github.com/YusukeIwaki/puppeteer-ruby/compare/0.40.7...0.41.0)]
6
10
 
7
11
  - Port Puppeteer v14.0-v15.2 features, including `ElementHandle#wait_for_xpath`
data/docs/api_coverage.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # API coverages
2
- - Puppeteer version: v15.2.0
3
- - puppeteer-ruby version: 0.41.0
2
+ - Puppeteer version: v15.5.0
3
+ - puppeteer-ruby version: 0.42.0
4
4
 
5
5
  ## Puppeteer
6
6
 
@@ -14,20 +14,12 @@
14
14
  * executablePath => `#executable_path`
15
15
  * launch
16
16
  * networkConditions => `#network_conditions`
17
- * product
18
17
  * ~~registerCustomQueryHandler~~
19
18
  * ~~unregisterCustomQueryHandler~~
20
19
 
21
- ## ~~BrowserFetcher~~
20
+ ## ~~Accessibility~~
22
21
 
23
- * ~~canDownload~~
24
- * ~~download~~
25
- * ~~host~~
26
- * ~~localRevisions~~
27
- * ~~platform~~
28
- * ~~product~~
29
- * ~~remove~~
30
- * ~~revisionInfo~~
22
+ * ~~snapshot~~
31
23
 
32
24
  ## Browser
33
25
 
@@ -59,138 +51,55 @@
59
51
  * targets
60
52
  * waitForTarget => `#wait_for_target`
61
53
 
62
- ## Page
63
-
64
- * $ => `#query_selector`
65
- * $$ => `#query_selector_all`
66
- * $$eval => `#eval_on_selector_all`
67
- * $eval => `#eval_on_selector`
68
- * $x => `#Sx`
69
- * accessibility
70
- * addScriptTag => `#add_script_tag`
71
- * addStyleTag => `#add_style_tag`
72
- * authenticate
73
- * bringToFront => `#bring_to_front`
74
- * browser
75
- * browserContext => `#browser_context`
76
- * click
77
- * close
78
- * content
79
- * cookies
80
- * coverage
81
- * createPDFStream => `#create_pdf_stream`
82
- * deleteCookie => `#delete_cookie`
83
- * emulate
84
- * emulateCPUThrottling => `#emulate_cpu_throttling`
85
- * emulateIdleState => `#emulate_idle_state`
86
- * emulateMediaFeatures => `#emulate_media_features`
87
- * emulateMediaType => `#emulate_media_type`
88
- * emulateNetworkConditions => `#emulate_network_conditions`
89
- * emulateTimezone => `#emulate_timezone`
90
- * emulateVisionDeficiency => `#emulate_vision_deficiency`
91
- * evaluate
92
- * evaluateHandle => `#evaluate_handle`
93
- * evaluateOnNewDocument => `#evaluate_on_new_document`
94
- * exposeFunction => `#expose_function`
95
- * focus
96
- * frames
97
- * goBack => `#go_back`
98
- * goForward => `#go_forward`
99
- * goto
100
- * hover
101
- * isClosed => `#closed?`
102
- * isDragInterceptionEnabled => `#drag_interception_enabled?`
103
- * isJavaScriptEnabled => `#javascript_enabled?`
104
- * keyboard
105
- * mainFrame => `#main_frame`
106
- * metrics
107
- * mouse
108
- * pdf
109
- * queryObjects => `#query_objects`
110
- * reload
111
- * screenshot
112
- * select
113
- * setBypassCSP => `#bypass_csp=`
114
- * setCacheEnabled => `#cache_enabled=`
115
- * setContent => `#content=`
116
- * setCookie => `#set_cookie`
117
- * setDefaultNavigationTimeout => `#default_navigation_timeout=`
118
- * setDefaultTimeout => `#default_timeout=`
119
- * ~~setDragInterception~~
120
- * setExtraHTTPHeaders => `#extra_http_headers=`
121
- * setGeolocation => `#geolocation=`
122
- * setJavaScriptEnabled => `#javascript_enabled=`
123
- * setOfflineMode => `#offline_mode=`
124
- * setRequestInterception => `#request_interception=`
125
- * setUserAgent => `#user_agent=`
126
- * setViewport => `#viewport=`
127
- * tap
128
- * target
129
- * title
130
- * ~~touchscreen~~
131
- * tracing
132
- * type => `#type_text`
133
- * url
134
- * viewport
135
- * ~~waitFor~~
136
- * waitForFileChooser => `#wait_for_file_chooser`
137
- * waitForFrame => `#wait_for_frame`
138
- * waitForFunction => `#wait_for_function`
139
- * waitForNavigation => `#wait_for_navigation`
140
- * ~~waitForNetworkIdle~~
141
- * waitForRequest => `#wait_for_request`
142
- * waitForResponse => `#wait_for_response`
143
- * waitForSelector => `#wait_for_selector`
144
- * waitForTimeout => `#wait_for_timeout`
145
- * waitForXPath => `#wait_for_xpath`
146
- * workers
147
-
148
- ## ~~WebWorker~~
54
+ ## ~~BrowserFetcher~~
149
55
 
150
- * ~~evaluate~~
151
- * ~~evaluateHandle~~
152
- * ~~executionContext~~
153
- * ~~url~~
56
+ * ~~canDownload~~
57
+ * ~~download~~
58
+ * ~~host~~
59
+ * ~~localRevisions~~
60
+ * ~~platform~~
61
+ * ~~product~~
62
+ * ~~remove~~
63
+ * ~~revisionInfo~~
154
64
 
155
- ## ~~Accessibility~~
65
+ ## CDPSession
156
66
 
157
- * ~~snapshot~~
67
+ * connection
68
+ * detach
69
+ * id
70
+ * send
158
71
 
159
- ## Keyboard
72
+ ## Connection
160
73
 
161
- * down
162
- * press
163
- * sendCharacter => `#send_character`
164
- * type => `#type_text`
165
- * up
74
+ * createSession => `#create_session`
75
+ * dispose
76
+ * ~~fromSession~~
77
+ * send
78
+ * session
79
+ * url
166
80
 
167
- ## Mouse
81
+ ## ConsoleMessage
168
82
 
169
- * click
170
- * down
171
- * drag
172
- * dragAndDrop => `#drag_and_drop`
173
- * dragEnter => `#drag_enter`
174
- * dragOver => `#drag_over`
175
- * drop
176
- * move
177
- * up
178
- * wheel
83
+ * args
84
+ * location
85
+ * stackTrace => `#stack_trace`
86
+ * text
87
+ * ~~type~~
179
88
 
180
- ## ~~Touchscreen~~
89
+ ## Coverage
181
90
 
182
- * ~~tap~~
91
+ * startCSSCoverage => `#start_css_coverage`
92
+ * startJSCoverage => `#start_js_coverage`
93
+ * stopCSSCoverage => `#stop_css_coverage`
94
+ * stopJSCoverage => `#stop_js_coverage`
183
95
 
184
- ## Tracing
96
+ ## CSSCoverage
185
97
 
186
98
  * start
187
99
  * stop
188
100
 
189
- ## FileChooser
101
+ ## ~~CustomError~~
190
102
 
191
- * accept
192
- * cancel
193
- * isMultiple => `#multiple?`
194
103
 
195
104
  ## Dialog
196
105
 
@@ -200,49 +109,47 @@
200
109
  * message
201
110
  * type
202
111
 
203
- ## ConsoleMessage
204
-
205
- * args
206
- * location
207
- * stackTrace => `#stack_trace`
208
- * text
209
- * ~~type~~
210
-
211
- ## Frame
112
+ ## ElementHandle
212
113
 
213
114
  * $ => `#query_selector`
214
115
  * $$ => `#query_selector_all`
215
116
  * $$eval => `#eval_on_selector_all`
216
117
  * $eval => `#eval_on_selector`
217
118
  * $x => `#Sx`
218
- * addScriptTag => `#add_script_tag`
219
- * addStyleTag => `#add_style_tag`
220
- * childFrames => `#child_frames`
119
+ * asElement => `#as_element`
120
+ * boundingBox => `#bounding_box`
121
+ * boxModel => `#box_model`
221
122
  * click
222
- * content
223
- * evaluate
224
- * evaluateHandle => `#evaluate_handle`
225
- * executionContext => `#execution_context`
123
+ * clickablePoint => `#clickable_point`
124
+ * contentFrame => `#content_frame`
125
+ * drag
126
+ * dragAndDrop => `#drag_and_drop`
127
+ * dragEnter => `#drag_enter`
128
+ * dragOver => `#drag_over`
129
+ * drop
226
130
  * focus
227
- * goto
228
131
  * hover
229
- * isDetached => `#detached?`
230
- * isOOPFrame => `#oop_frame?`
231
- * name
232
- * parentFrame => `#parent_frame`
132
+ * isIntersectingViewport => `#intersecting_viewport?`
133
+ * press
134
+ * screenshot
233
135
  * select
234
- * setContent => `#set_content`
235
136
  * tap
236
- * title
237
137
  * type => `#type_text`
238
- * url
239
- * ~~waitFor~~
240
- * waitForFunction => `#wait_for_function`
241
- * waitForNavigation => `#wait_for_navigation`
138
+ * uploadFile => `#upload_file`
242
139
  * waitForSelector => `#wait_for_selector`
243
- * waitForTimeout => `#wait_for_timeout`
244
140
  * waitForXPath => `#wait_for_xpath`
245
141
 
142
+ ## ~~EventEmitter~~
143
+
144
+ * ~~addListener~~
145
+ * ~~emit~~
146
+ * ~~listenerCount~~
147
+ * ~~off~~
148
+ * ~~on~~
149
+ * ~~once~~
150
+ * ~~removeAllListeners~~
151
+ * ~~removeListener~~
152
+
246
153
  ## ExecutionContext
247
154
 
248
155
  * evaluate
@@ -250,53 +157,45 @@
250
157
  * frame
251
158
  * ~~queryObjects~~
252
159
 
253
- ## JSHandle
160
+ ## FileChooser
254
161
 
255
- * asElement => `#as_element`
256
- * dispose
257
- * evaluate
258
- * evaluateHandle => `#evaluate_handle`
259
- * executionContext => `#execution_context`
260
- * getProperties => `#properties`
261
- * getProperty => `#[]`
262
- * jsonValue => `#json_value`
162
+ * accept
163
+ * cancel
164
+ * isMultiple => `#multiple?`
263
165
 
264
- ## ElementHandle
166
+ ## Frame
265
167
 
266
168
  * $ => `#query_selector`
267
169
  * $$ => `#query_selector_all`
268
170
  * $$eval => `#eval_on_selector_all`
269
171
  * $eval => `#eval_on_selector`
270
172
  * $x => `#Sx`
271
- * asElement => `#as_element`
272
- * boundingBox => `#bounding_box`
273
- * boxModel => `#box_model`
173
+ * addScriptTag => `#add_script_tag`
174
+ * addStyleTag => `#add_style_tag`
175
+ * childFrames => `#child_frames`
274
176
  * click
275
- * clickablePoint => `#clickable_point`
276
- * contentFrame => `#content_frame`
277
- * dispose
278
- * drag
279
- * dragAndDrop => `#drag_and_drop`
280
- * dragEnter => `#drag_enter`
281
- * dragOver => `#drag_over`
282
- * drop
177
+ * content
283
178
  * evaluate
284
179
  * evaluateHandle => `#evaluate_handle`
285
180
  * executionContext => `#execution_context`
286
181
  * focus
287
- * getProperties => `#properties`
288
- * getProperty => `#[]`
182
+ * goto
289
183
  * hover
290
- * isIntersectingViewport => `#intersecting_viewport?`
291
- * jsonValue => `#json_value`
292
- * press
293
- * screenshot
184
+ * isDetached => `#detached?`
185
+ * isOOPFrame => `#oop_frame?`
186
+ * name
187
+ * page
188
+ * parentFrame => `#parent_frame`
294
189
  * select
190
+ * setContent => `#set_content`
295
191
  * tap
296
- * ~~toString~~
192
+ * title
297
193
  * type => `#type_text`
298
- * uploadFile => `#upload_file`
194
+ * url
195
+ * waitForFunction => `#wait_for_function`
196
+ * waitForNavigation => `#wait_for_navigation`
299
197
  * waitForSelector => `#wait_for_selector`
198
+ * waitForTimeout => `#wait_for_timeout`
300
199
  * waitForXPath => `#wait_for_xpath`
301
200
 
302
201
  ## HTTPRequest
@@ -341,6 +240,131 @@
341
240
  * ~~timing~~
342
241
  * url
343
242
 
243
+ ## JSCoverage
244
+
245
+ * start
246
+ * stop
247
+
248
+ ## JSHandle
249
+
250
+ * asElement => `#as_element`
251
+ * dispose
252
+ * evaluate
253
+ * evaluateHandle => `#evaluate_handle`
254
+ * executionContext => `#execution_context`
255
+ * getProperties => `#properties`
256
+ * getProperty => `#[]`
257
+ * getProperty => `#[]`
258
+ * jsonValue => `#json_value`
259
+ * remoteObject => `#remote_object`
260
+ * ~~toString~~
261
+
262
+ ## Keyboard
263
+
264
+ * down
265
+ * press
266
+ * sendCharacter => `#send_character`
267
+ * type => `#type_text`
268
+ * up
269
+
270
+ ## Mouse
271
+
272
+ * click
273
+ * down
274
+ * drag
275
+ * dragAndDrop => `#drag_and_drop`
276
+ * dragEnter => `#drag_enter`
277
+ * dragOver => `#drag_over`
278
+ * drop
279
+ * move
280
+ * up
281
+ * wheel
282
+
283
+ ## Page
284
+
285
+ * $ => `#query_selector`
286
+ * $$ => `#query_selector_all`
287
+ * $$eval => `#eval_on_selector_all`
288
+ * $eval => `#eval_on_selector`
289
+ * $x => `#Sx`
290
+ * addScriptTag => `#add_script_tag`
291
+ * addStyleTag => `#add_style_tag`
292
+ * authenticate
293
+ * bringToFront => `#bring_to_front`
294
+ * browser
295
+ * browserContext => `#browser_context`
296
+ * click
297
+ * close
298
+ * content
299
+ * cookies
300
+ * createPDFStream => `#create_pdf_stream`
301
+ * deleteCookie => `#delete_cookie`
302
+ * emulate
303
+ * emulateCPUThrottling => `#emulate_cpu_throttling`
304
+ * emulateIdleState => `#emulate_idle_state`
305
+ * emulateMediaFeatures => `#emulate_media_features`
306
+ * emulateMediaType => `#emulate_media_type`
307
+ * emulateNetworkConditions => `#emulate_network_conditions`
308
+ * emulateTimezone => `#emulate_timezone`
309
+ * emulateVisionDeficiency => `#emulate_vision_deficiency`
310
+ * evaluate
311
+ * evaluateHandle => `#evaluate_handle`
312
+ * evaluateOnNewDocument => `#evaluate_on_new_document`
313
+ * exposeFunction => `#expose_function`
314
+ * focus
315
+ * frames
316
+ * goBack => `#go_back`
317
+ * goForward => `#go_forward`
318
+ * goto
319
+ * hover
320
+ * isClosed => `#closed?`
321
+ * isDragInterceptionEnabled => `#drag_interception_enabled?`
322
+ * isJavaScriptEnabled => `#javascript_enabled?`
323
+ * mainFrame => `#main_frame`
324
+ * metrics
325
+ * ~~off~~
326
+ * on
327
+ * once
328
+ * pdf
329
+ * queryObjects => `#query_objects`
330
+ * reload
331
+ * screenshot
332
+ * select
333
+ * setBypassCSP => `#bypass_csp=`
334
+ * setCacheEnabled => `#cache_enabled=`
335
+ * setContent => `#content=`
336
+ * setCookie => `#set_cookie`
337
+ * setDefaultNavigationTimeout => `#default_navigation_timeout=`
338
+ * setDefaultTimeout => `#default_timeout=`
339
+ * ~~setDragInterception~~
340
+ * setExtraHTTPHeaders => `#extra_http_headers=`
341
+ * setGeolocation => `#geolocation=`
342
+ * setJavaScriptEnabled => `#javascript_enabled=`
343
+ * setOfflineMode => `#offline_mode=`
344
+ * setRequestInterception => `#request_interception=`
345
+ * setUserAgent => `#user_agent=`
346
+ * setViewport => `#viewport=`
347
+ * tap
348
+ * target
349
+ * title
350
+ * type => `#type_text`
351
+ * url
352
+ * viewport
353
+ * waitForFileChooser => `#wait_for_file_chooser`
354
+ * waitForFrame => `#wait_for_frame`
355
+ * waitForFunction => `#wait_for_function`
356
+ * waitForNavigation => `#wait_for_navigation`
357
+ * ~~waitForNetworkIdle~~
358
+ * waitForRequest => `#wait_for_request`
359
+ * waitForResponse => `#wait_for_response`
360
+ * waitForSelector => `#wait_for_selector`
361
+ * waitForTimeout => `#wait_for_timeout`
362
+ * waitForXPath => `#wait_for_xpath`
363
+ * workers
364
+
365
+ ## ~~ProtocolError~~
366
+
367
+
344
368
  ## ~~SecurityDetails~~
345
369
 
346
370
  * ~~issuer~~
@@ -361,30 +385,21 @@
361
385
  * url
362
386
  * ~~worker~~
363
387
 
364
- ## CDPSession
388
+ ## TimeoutError
365
389
 
366
- * connection
367
- * detach
368
- * id
369
- * send
370
390
 
371
- ## Coverage
391
+ ## ~~Touchscreen~~
372
392
 
373
- * startCSSCoverage => `#start_css_coverage`
374
- * startJSCoverage => `#start_js_coverage`
375
- * stopCSSCoverage => `#stop_css_coverage`
376
- * stopJSCoverage => `#stop_js_coverage`
393
+ * ~~tap~~
377
394
 
378
- ## TimeoutError
395
+ ## Tracing
379
396
 
397
+ * start
398
+ * stop
380
399
 
381
- ## ~~EventEmitter~~
400
+ ## ~~WebWorker~~
382
401
 
383
- * ~~addListener~~
384
- * ~~emit~~
385
- * ~~listenerCount~~
386
- * ~~off~~
387
- * ~~on~~
388
- * ~~once~~
389
- * ~~removeAllListeners~~
390
- * ~~removeListener~~
402
+ * ~~evaluate~~
403
+ * ~~evaluateHandle~~
404
+ * ~~executionContext~~
405
+ * ~~url~~
@@ -169,37 +169,25 @@ class Puppeteer::ElementHandle < Puppeteer::JSHandle
169
169
 
170
170
  def scroll_into_view_if_needed
171
171
  js = <<~JAVASCRIPT
172
- async(element, pageJavascriptEnabled) => {
172
+ async(element) => {
173
173
  if (!element.isConnected)
174
174
  return 'Node is detached from document';
175
175
  if (element.nodeType !== Node.ELEMENT_NODE)
176
176
  return 'Node is not of type HTMLElement';
177
-
178
- if (element.scrollIntoViewIfNeeded) {
179
- element.scrollIntoViewIfNeeded({block: 'center', inline: 'center', behavior: 'instant'});
180
- } else {
181
- // force-scroll if page's javascript is disabled.
182
- if (!pageJavascriptEnabled) {
183
- element.scrollIntoView({block: 'center', inline: 'center', behavior: 'instant'});
184
- return false;
185
- }
186
- const visibleRatio = await new Promise(resolve => {
187
- const observer = new IntersectionObserver(entries => {
188
- resolve(entries[0].intersectionRatio);
189
- observer.disconnect();
190
- });
191
- observer.observe(element);
192
- });
193
- if (visibleRatio !== 1.0)
194
- element.scrollIntoView({block: 'center', inline: 'center', behavior: 'instant'});
195
- }
196
177
  return false;
197
178
  }
198
179
  JAVASCRIPT
199
- error = evaluate(js, @page.javascript_enabled) # returns String or false
180
+ error = evaluate(js) # returns String or false
200
181
  if error
201
182
  raise ScrollIntoViewError.new(error)
202
183
  end
184
+ begin
185
+ @remote_object.scroll_into_view_if_needed(@client)
186
+ rescue => err
187
+ # Just ignore 'Node does not have a layout object' for backward-compatibility.
188
+ raise unless err.message =~ /Node does not have a layout object/
189
+ end
190
+
203
191
  # clickpoint is often calculated before scrolling is completed.
204
192
  # So, just sleep about 10 frames
205
193
  sleep 0.16
@@ -569,7 +557,7 @@ class Puppeteer::ElementHandle < Puppeteer::JSHandle
569
557
  capture_beyond_viewport: capture_beyond_viewport,
570
558
  from_surface: from_surface)
571
559
  ensure
572
- if needs_viewport_reset
560
+ if needs_viewport_reset && viewport
573
561
  @page.viewport = viewport
574
562
  end
575
563
  end
@@ -41,6 +41,10 @@ class Puppeteer::Frame
41
41
  @secondary_world = Puppeteer::DOMWorld.new(@client, @frame_manager, self, @frame_manager.timeout_settings)
42
42
  end
43
43
 
44
+ def page
45
+ @frame_manager.page
46
+ end
47
+
44
48
  def oop_frame?
45
49
  @client != @frame_manager.client
46
50
  end
@@ -176,4 +176,8 @@ class Puppeteer::RemoteObject
176
176
  def set_file_input_files(client, files, backend_node_id)
177
177
  client.send_message('DOM.setFileInputFiles', objectId: @object_id, files: files, backendNodeId: backend_node_id)
178
178
  end
179
+
180
+ def scroll_into_view_if_needed(client)
181
+ client.send_message('DOM.scrollIntoViewIfNeeded', objectId: @object_id)
182
+ end
179
183
  end
@@ -1,3 +1,3 @@
1
1
  module Puppeteer
2
- VERSION = '0.41.0'
2
+ VERSION = '0.42.0'
3
3
  end
@@ -32,7 +32,7 @@ Gem::Specification.new do |spec|
32
32
  spec.add_development_dependency 'rollbar'
33
33
  spec.add_development_dependency 'rspec', '~> 3.11.0'
34
34
  spec.add_development_dependency 'rspec_junit_formatter' # for CircleCI.
35
- spec.add_development_dependency 'rubocop', '~> 1.31.0'
35
+ spec.add_development_dependency 'rubocop', '~> 1.35.0'
36
36
  spec.add_development_dependency 'rubocop-rspec'
37
37
  spec.add_development_dependency 'sinatra'
38
38
  spec.add_development_dependency 'webrick'
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: puppeteer-ruby
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.41.0
4
+ version: 0.42.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - YusukeIwaki
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2022-07-03 00:00:00.000000000 Z
11
+ date: 2022-08-15 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: concurrent-ruby
@@ -170,14 +170,14 @@ dependencies:
170
170
  requirements:
171
171
  - - "~>"
172
172
  - !ruby/object:Gem::Version
173
- version: 1.31.0
173
+ version: 1.35.0
174
174
  type: :development
175
175
  prerelease: false
176
176
  version_requirements: !ruby/object:Gem::Requirement
177
177
  requirements:
178
178
  - - "~>"
179
179
  - !ruby/object:Gem::Version
180
- version: 1.31.0
180
+ version: 1.35.0
181
181
  - !ruby/object:Gem::Dependency
182
182
  name: rubocop-rspec
183
183
  requirement: !ruby/object:Gem::Requirement