puppeteer-ruby 0.0.13 → 0.0.14

Sign up to get free protection for your applications and to get access to all the features.
Files changed (126) hide show
  1. checksums.yaml +4 -4
  2. data/.circleci/config.yml +0 -12
  3. data/.github/workflows/docs.yml +45 -0
  4. data/.github/workflows/reviewdog.yml +15 -0
  5. data/README.md +52 -1
  6. data/lib/puppeteer.rb +1 -1
  7. data/lib/puppeteer/browser.rb +17 -25
  8. data/lib/puppeteer/cdp_session.rb +3 -19
  9. data/lib/puppeteer/concurrent_ruby_utils.rb +6 -0
  10. data/lib/puppeteer/connection.rb +3 -15
  11. data/lib/puppeteer/define_async_method.rb +23 -0
  12. data/lib/puppeteer/dom_world.rb +6 -21
  13. data/lib/puppeteer/element_handle.rb +15 -44
  14. data/lib/puppeteer/emulation_manager.rb +2 -6
  15. data/lib/puppeteer/execution_context.rb +1 -6
  16. data/lib/puppeteer/frame.rb +30 -16
  17. data/lib/puppeteer/frame_manager.rb +7 -25
  18. data/lib/puppeteer/js_handle.rb +3 -12
  19. data/lib/puppeteer/keyboard.rb +6 -27
  20. data/lib/puppeteer/mouse.rb +5 -25
  21. data/lib/puppeteer/page.rb +39 -63
  22. data/lib/puppeteer/remote_object.rb +2 -5
  23. data/lib/puppeteer/touch_screen.rb +2 -7
  24. data/lib/puppeteer/version.rb +1 -1
  25. data/lib/puppeteer/wait_task.rb +2 -4
  26. data/puppeteer-ruby.gemspec +1 -1
  27. metadata +7 -103
  28. data/docs/Puppeteer.html +0 -2338
  29. data/docs/Puppeteer/AsyncAwaitBehavior.html +0 -105
  30. data/docs/Puppeteer/Browser.html +0 -2258
  31. data/docs/Puppeteer/BrowserContext.html +0 -809
  32. data/docs/Puppeteer/BrowserFetcher.html +0 -214
  33. data/docs/Puppeteer/BrowserRunner.html +0 -914
  34. data/docs/Puppeteer/BrowserRunner/BrowserProcess.html +0 -477
  35. data/docs/Puppeteer/CDPSession.html +0 -813
  36. data/docs/Puppeteer/CDPSession/Error.html +0 -124
  37. data/docs/Puppeteer/ConcurrentRubyUtils.html +0 -438
  38. data/docs/Puppeteer/Connection.html +0 -964
  39. data/docs/Puppeteer/Connection/MessageCallback.html +0 -434
  40. data/docs/Puppeteer/Connection/ProtocolError.html +0 -216
  41. data/docs/Puppeteer/Connection/RequestDebugPrinter.html +0 -217
  42. data/docs/Puppeteer/Connection/ResponseDebugPrinter.html +0 -244
  43. data/docs/Puppeteer/ConsoleMessage.html +0 -565
  44. data/docs/Puppeteer/ConsoleMessage/Location.html +0 -433
  45. data/docs/Puppeteer/DOMWorld.html +0 -2293
  46. data/docs/Puppeteer/DOMWorld/DetachedError.html +0 -124
  47. data/docs/Puppeteer/DOMWorld/DocumentEvaluationError.html +0 -124
  48. data/docs/Puppeteer/DebugPrint.html +0 -233
  49. data/docs/Puppeteer/Device.html +0 -470
  50. data/docs/Puppeteer/Devices.html +0 -139
  51. data/docs/Puppeteer/ElementHandle.html +0 -2542
  52. data/docs/Puppeteer/ElementHandle/BoundingBox.html +0 -507
  53. data/docs/Puppeteer/ElementHandle/BoxModel.html +0 -404
  54. data/docs/Puppeteer/ElementHandle/ElementNotFoundError.html +0 -206
  55. data/docs/Puppeteer/ElementHandle/ElementNotVisibleError.html +0 -206
  56. data/docs/Puppeteer/ElementHandle/Point.html +0 -492
  57. data/docs/Puppeteer/ElementHandle/ScrollIntoViewError.html +0 -124
  58. data/docs/Puppeteer/EmulationManager.html +0 -454
  59. data/docs/Puppeteer/EventCallbackable.html +0 -499
  60. data/docs/Puppeteer/EventCallbackable/EventListeners.html +0 -435
  61. data/docs/Puppeteer/ExecutionContext.html +0 -998
  62. data/docs/Puppeteer/ExecutionContext/EvaluationError.html +0 -124
  63. data/docs/Puppeteer/ExecutionContext/JavaScriptExpression.html +0 -357
  64. data/docs/Puppeteer/ExecutionContext/JavaScriptFunction.html +0 -389
  65. data/docs/Puppeteer/FileChooser.html +0 -455
  66. data/docs/Puppeteer/Frame.html +0 -3835
  67. data/docs/Puppeteer/FrameManager.html +0 -2410
  68. data/docs/Puppeteer/FrameManager/NavigationError.html +0 -124
  69. data/docs/Puppeteer/IfPresent.html +0 -222
  70. data/docs/Puppeteer/JSHandle.html +0 -1352
  71. data/docs/Puppeteer/Keyboard.html +0 -1557
  72. data/docs/Puppeteer/Keyboard/KeyDefinition.html +0 -831
  73. data/docs/Puppeteer/Keyboard/KeyDescription.html +0 -603
  74. data/docs/Puppeteer/Launcher.html +0 -237
  75. data/docs/Puppeteer/Launcher/Base.html +0 -385
  76. data/docs/Puppeteer/Launcher/Base/ExecutablePathNotFound.html +0 -124
  77. data/docs/Puppeteer/Launcher/BrowserOptions.html +0 -441
  78. data/docs/Puppeteer/Launcher/Chrome.html +0 -674
  79. data/docs/Puppeteer/Launcher/Chrome/DefaultArgs.html +0 -382
  80. data/docs/Puppeteer/Launcher/ChromeArgOptions.html +0 -531
  81. data/docs/Puppeteer/Launcher/LaunchOptions.html +0 -893
  82. data/docs/Puppeteer/LifecycleWatcher.html +0 -834
  83. data/docs/Puppeteer/LifecycleWatcher/ExpectedLifecycle.html +0 -363
  84. data/docs/Puppeteer/LifecycleWatcher/FrameDetachedError.html +0 -206
  85. data/docs/Puppeteer/LifecycleWatcher/TerminatedError.html +0 -124
  86. data/docs/Puppeteer/Mouse.html +0 -1095
  87. data/docs/Puppeteer/Mouse/Button.html +0 -136
  88. data/docs/Puppeteer/NetworkManager.html +0 -901
  89. data/docs/Puppeteer/NetworkManager/Credentials.html +0 -385
  90. data/docs/Puppeteer/Page.html +0 -6173
  91. data/docs/Puppeteer/Page/FileChooserTimeoutError.html +0 -206
  92. data/docs/Puppeteer/Page/ScreenshotOptions.html +0 -845
  93. data/docs/Puppeteer/Page/ScriptTag.html +0 -555
  94. data/docs/Puppeteer/Page/StyleTag.html +0 -448
  95. data/docs/Puppeteer/Page/TargetCrashedError.html +0 -124
  96. data/docs/Puppeteer/RemoteObject.html +0 -1087
  97. data/docs/Puppeteer/Target.html +0 -1336
  98. data/docs/Puppeteer/Target/InitializeFailure.html +0 -124
  99. data/docs/Puppeteer/Target/TargetInfo.html +0 -729
  100. data/docs/Puppeteer/TimeoutError.html +0 -135
  101. data/docs/Puppeteer/TimeoutSettings.html +0 -496
  102. data/docs/Puppeteer/TouchScreen.html +0 -464
  103. data/docs/Puppeteer/Viewport.html +0 -837
  104. data/docs/Puppeteer/WaitTask.html +0 -637
  105. data/docs/Puppeteer/WaitTask/TerminatedError.html +0 -124
  106. data/docs/Puppeteer/WaitTask/TimeoutError.html +0 -206
  107. data/docs/Puppeteer/WebSocket.html +0 -673
  108. data/docs/Puppeteer/WebSocket/DriverImpl.html +0 -412
  109. data/docs/Puppeteer/WebSocket/TransportError.html +0 -124
  110. data/docs/Puppeteer/WebSocketTransport.html +0 -600
  111. data/docs/Puppeteer/WebSocktTransportError.html +0 -124
  112. data/docs/_index.html +0 -816
  113. data/docs/class_list.html +0 -51
  114. data/docs/css/common.css +0 -1
  115. data/docs/css/full_list.css +0 -58
  116. data/docs/css/style.css +0 -496
  117. data/docs/file.README.html +0 -125
  118. data/docs/file_list.html +0 -56
  119. data/docs/frames.html +0 -17
  120. data/docs/index.html +0 -125
  121. data/docs/js/app.js +0 -314
  122. data/docs/js/full_list.js +0 -216
  123. data/docs/js/jquery.js +0 -4
  124. data/docs/method_list.html +0 -4123
  125. data/docs/top-level-namespace.html +0 -126
  126. data/lib/puppeteer/async_await_behavior.rb +0 -38
@@ -1,555 +0,0 @@
1
- <!DOCTYPE html>
2
- <html>
3
- <head>
4
- <meta charset="utf-8">
5
- <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
- <title>
7
- Class: Puppeteer::Page::ScriptTag
8
-
9
- &mdash; Documentation by YARD 0.9.24
10
-
11
- </title>
12
-
13
- <link rel="stylesheet" href="../../css/style.css" type="text/css" />
14
-
15
- <link rel="stylesheet" href="../../css/common.css" type="text/css" />
16
-
17
- <script type="text/javascript">
18
- pathId = "Puppeteer::Page::ScriptTag";
19
- relpath = '../../';
20
- </script>
21
-
22
-
23
- <script type="text/javascript" charset="utf-8" src="../../js/jquery.js"></script>
24
-
25
- <script type="text/javascript" charset="utf-8" src="../../js/app.js"></script>
26
-
27
-
28
- </head>
29
- <body>
30
- <div class="nav_wrap">
31
- <iframe id="nav" src="../../class_list.html?1"></iframe>
32
- <div id="resizer"></div>
33
- </div>
34
-
35
- <div id="main" tabindex="-1">
36
- <div id="header">
37
- <div id="menu">
38
-
39
- <a href="../../_index.html">Index (S)</a> &raquo;
40
- <span class='title'><span class='object_link'><a href="../../Puppeteer.html" title="Puppeteer (class)">Puppeteer</a></span></span> &raquo; <span class='title'><span class='object_link'><a href="../Page.html" title="Puppeteer::Page (class)">Page</a></span></span>
41
- &raquo;
42
- <span class="title">ScriptTag</span>
43
-
44
- </div>
45
-
46
- <div id="search">
47
-
48
- <a class="full_list_link" id="class_list_link"
49
- href="../../class_list.html">
50
-
51
- <svg width="24" height="24">
52
- <rect x="0" y="4" width="24" height="4" rx="1" ry="1"></rect>
53
- <rect x="0" y="12" width="24" height="4" rx="1" ry="1"></rect>
54
- <rect x="0" y="20" width="24" height="4" rx="1" ry="1"></rect>
55
- </svg>
56
- </a>
57
-
58
- </div>
59
- <div class="clear"></div>
60
- </div>
61
-
62
- <div id="content"><h1>Class: Puppeteer::Page::ScriptTag
63
-
64
-
65
-
66
- </h1>
67
- <div class="box_info">
68
-
69
- <dl>
70
- <dt>Inherits:</dt>
71
- <dd>
72
- <span class="inheritName">Object</span>
73
-
74
- <ul class="fullTree">
75
- <li>Object</li>
76
-
77
- <li class="next">Puppeteer::Page::ScriptTag</li>
78
-
79
- </ul>
80
- <a href="#" class="inheritanceTree">show all</a>
81
-
82
- </dd>
83
- </dl>
84
-
85
-
86
-
87
-
88
-
89
-
90
-
91
-
92
-
93
-
94
-
95
- <dl>
96
- <dt>Defined in:</dt>
97
- <dd>lib/puppeteer/page.rb</dd>
98
- </dl>
99
-
100
- </div>
101
-
102
- <h2>Overview</h2><div class="docstring">
103
- <div class="discussion">
104
-
105
- <p>/**</p>
106
-
107
- <pre class="code ruby"><code class="ruby">* @param {Array&lt;Network.CookieParam&gt;} cookies
108
- */
109
- </code></pre>
110
-
111
- <p>async setCookie(…cookies)
112
- <pre class="code ruby"><code class="ruby">const pageURL = this.url();
113
- const startsWithHTTP = pageURL.startsWith(&#39;http&#39;);
114
- const items = cookies.map(cookie =&gt; {
115
- const item = Object.assign({, cookie);
116
- if (!item.url &amp;&amp; startsWithHTTP)
117
- item.url = pageURL;
118
- assert(item.url !== &#39;about:blank&#39;, `Blank page can not have cookie &quot;$itemitem.name&quot;`);
119
- assert(!String.prototype.startsWith.call(item.url || &#39;&#39;, &#39;data:&#39;), `Data URL page can not have cookie &quot;$itemitem.name&quot;`);
120
- return item;
121
- });
122
- await this.deleteCookie(...items);
123
- if (items.length)
124
- await this._client.send(&#39;Network.setCookies&#39;, { cookies: items });
125
- </code></pre>
126
-
127
- <p>}</p>
128
-
129
-
130
- </div>
131
- </div>
132
- <div class="tags">
133
-
134
-
135
- </div>
136
-
137
-
138
-
139
- <h2>Instance Attribute Summary <small><a href="#" class="summary_toggle">collapse</a></small></h2>
140
- <ul class="summary">
141
-
142
- <li class="public ">
143
- <span class="summary_signature">
144
-
145
- <a href="#content-instance_method" title="#content (instance method)">#<strong>content</strong> &#x21d2; Object </a>
146
-
147
-
148
-
149
- </span>
150
-
151
-
152
-
153
-
154
- <span class="note title readonly">readonly</span>
155
-
156
-
157
-
158
-
159
-
160
-
161
-
162
-
163
-
164
- <span class="summary_desc"><div class='inline'>
165
- <p>Returns the value of attribute content.</p>
166
- </div></span>
167
-
168
- </li>
169
-
170
-
171
- <li class="public ">
172
- <span class="summary_signature">
173
-
174
- <a href="#path-instance_method" title="#path (instance method)">#<strong>path</strong> &#x21d2; Object </a>
175
-
176
-
177
-
178
- </span>
179
-
180
-
181
-
182
-
183
- <span class="note title readonly">readonly</span>
184
-
185
-
186
-
187
-
188
-
189
-
190
-
191
-
192
-
193
- <span class="summary_desc"><div class='inline'>
194
- <p>Returns the value of attribute path.</p>
195
- </div></span>
196
-
197
- </li>
198
-
199
-
200
- <li class="public ">
201
- <span class="summary_signature">
202
-
203
- <a href="#type-instance_method" title="#type (instance method)">#<strong>type</strong> &#x21d2; Object </a>
204
-
205
-
206
-
207
- </span>
208
-
209
-
210
-
211
-
212
- <span class="note title readonly">readonly</span>
213
-
214
-
215
-
216
-
217
-
218
-
219
-
220
-
221
-
222
- <span class="summary_desc"><div class='inline'>
223
- <p>Returns the value of attribute type.</p>
224
- </div></span>
225
-
226
- </li>
227
-
228
-
229
- <li class="public ">
230
- <span class="summary_signature">
231
-
232
- <a href="#url-instance_method" title="#url (instance method)">#<strong>url</strong> &#x21d2; Object </a>
233
-
234
-
235
-
236
- </span>
237
-
238
-
239
-
240
-
241
- <span class="note title readonly">readonly</span>
242
-
243
-
244
-
245
-
246
-
247
-
248
-
249
-
250
-
251
- <span class="summary_desc"><div class='inline'>
252
- <p>Returns the value of attribute url.</p>
253
- </div></span>
254
-
255
- </li>
256
-
257
-
258
- </ul>
259
-
260
-
261
-
262
-
263
-
264
- <h2>
265
- Instance Method Summary
266
- <small><a href="#" class="summary_toggle">collapse</a></small>
267
- </h2>
268
-
269
- <ul class="summary">
270
-
271
- <li class="public ">
272
- <span class="summary_signature">
273
-
274
- <a href="#initialize-instance_method" title="#initialize (instance method)">#<strong>initialize</strong>(content: nil, path: nil, type: nil, url: nil) &#x21d2; ScriptTag </a>
275
-
276
-
277
-
278
- </span>
279
-
280
-
281
- <span class="note title constructor">constructor</span>
282
-
283
-
284
-
285
-
286
-
287
-
288
-
289
-
290
- <span class="summary_desc"><div class='inline'>
291
- <p>A new instance of ScriptTag.</p>
292
- </div></span>
293
-
294
- </li>
295
-
296
-
297
- </ul>
298
-
299
-
300
- <div id="constructor_details" class="method_details_list">
301
- <h2>Constructor Details</h2>
302
-
303
- <div class="method_details first">
304
- <h3 class="signature first" id="initialize-instance_method">
305
-
306
- #<strong>initialize</strong>(content: nil, path: nil, type: nil, url: nil) &#x21d2; <tt><span class='object_link'><a href="" title="Puppeteer::Page::ScriptTag (class)">ScriptTag</a></span></tt>
307
-
308
-
309
-
310
-
311
-
312
- </h3><div class="docstring">
313
- <div class="discussion">
314
-
315
- <p>Returns a new instance of ScriptTag.</p>
316
-
317
-
318
- </div>
319
- </div>
320
- <div class="tags">
321
- <p class="tag_title">Parameters:</p>
322
- <ul class="param">
323
-
324
- <li>
325
-
326
- <span class='name'>options</span>
327
-
328
-
329
- <span class='type'>(<tt>!{<span class='object_link'><a href="#content-instance_method" title="Puppeteer::Page::ScriptTag#content (method)">content</a></span>?: string, <span class='object_link'><a href="#path-instance_method" title="Puppeteer::Page::ScriptTag#path (method)">path</a></span>?: string, <span class='object_link'><a href="#type-instance_method" title="Puppeteer::Page::ScriptTag#type (method)">type</a></span>?: string, <span class='object_link'><a href="#url-instance_method" title="Puppeteer::Page::ScriptTag#url (method)">url</a></span>?: string}</tt>)</span>
330
-
331
-
332
-
333
- </li>
334
-
335
- </ul>
336
-
337
-
338
- </div><table class="source_code">
339
- <tr>
340
- <td>
341
- <pre class="lines">
342
-
343
-
344
- 413
345
- 414
346
- 415
347
- 416
348
- 417
349
- 418</pre>
350
- </td>
351
- <td>
352
- <pre class="code"><span class="info file"># File 'lib/puppeteer/page.rb', line 413</span>
353
-
354
- <span class='kw'>def</span> <span class='id identifier rubyid_initialize'>initialize</span><span class='lparen'>(</span><span class='label'>content:</span> <span class='kw'>nil</span><span class='comma'>,</span> <span class='label'>path:</span> <span class='kw'>nil</span><span class='comma'>,</span> <span class='label'>type:</span> <span class='kw'>nil</span><span class='comma'>,</span> <span class='label'>url:</span> <span class='kw'>nil</span><span class='rparen'>)</span>
355
- <span class='ivar'>@content</span> <span class='op'>=</span> <span class='id identifier rubyid_content'>content</span>
356
- <span class='ivar'>@path</span> <span class='op'>=</span> <span class='id identifier rubyid_path'>path</span>
357
- <span class='ivar'>@type</span> <span class='op'>=</span> <span class='id identifier rubyid_type'>type</span>
358
- <span class='ivar'>@url</span> <span class='op'>=</span> <span class='id identifier rubyid_url'>url</span>
359
- <span class='kw'>end</span></pre>
360
- </td>
361
- </tr>
362
- </table>
363
- </div>
364
-
365
- </div>
366
-
367
- <div id="instance_attr_details" class="attr_details">
368
- <h2>Instance Attribute Details</h2>
369
-
370
-
371
- <span id=""></span>
372
- <div class="method_details first">
373
- <h3 class="signature first" id="content-instance_method">
374
-
375
- #<strong>content</strong> &#x21d2; <tt>Object</tt> <span class="extras">(readonly)</span>
376
-
377
-
378
-
379
-
380
-
381
- </h3><div class="docstring">
382
- <div class="discussion">
383
-
384
- <p>Returns the value of attribute content.</p>
385
-
386
-
387
- </div>
388
- </div>
389
- <div class="tags">
390
-
391
-
392
- </div><table class="source_code">
393
- <tr>
394
- <td>
395
- <pre class="lines">
396
-
397
-
398
- 419
399
- 420
400
- 421</pre>
401
- </td>
402
- <td>
403
- <pre class="code"><span class="info file"># File 'lib/puppeteer/page.rb', line 419</span>
404
-
405
- <span class='kw'>def</span> <span class='id identifier rubyid_content'>content</span>
406
- <span class='ivar'>@content</span>
407
- <span class='kw'>end</span></pre>
408
- </td>
409
- </tr>
410
- </table>
411
- </div>
412
-
413
-
414
- <span id=""></span>
415
- <div class="method_details ">
416
- <h3 class="signature " id="path-instance_method">
417
-
418
- #<strong>path</strong> &#x21d2; <tt>Object</tt> <span class="extras">(readonly)</span>
419
-
420
-
421
-
422
-
423
-
424
- </h3><div class="docstring">
425
- <div class="discussion">
426
-
427
- <p>Returns the value of attribute path.</p>
428
-
429
-
430
- </div>
431
- </div>
432
- <div class="tags">
433
-
434
-
435
- </div><table class="source_code">
436
- <tr>
437
- <td>
438
- <pre class="lines">
439
-
440
-
441
- 419
442
- 420
443
- 421</pre>
444
- </td>
445
- <td>
446
- <pre class="code"><span class="info file"># File 'lib/puppeteer/page.rb', line 419</span>
447
-
448
- <span class='kw'>def</span> <span class='id identifier rubyid_path'>path</span>
449
- <span class='ivar'>@path</span>
450
- <span class='kw'>end</span></pre>
451
- </td>
452
- </tr>
453
- </table>
454
- </div>
455
-
456
-
457
- <span id=""></span>
458
- <div class="method_details ">
459
- <h3 class="signature " id="type-instance_method">
460
-
461
- #<strong>type</strong> &#x21d2; <tt>Object</tt> <span class="extras">(readonly)</span>
462
-
463
-
464
-
465
-
466
-
467
- </h3><div class="docstring">
468
- <div class="discussion">
469
-
470
- <p>Returns the value of attribute type.</p>
471
-
472
-
473
- </div>
474
- </div>
475
- <div class="tags">
476
-
477
-
478
- </div><table class="source_code">
479
- <tr>
480
- <td>
481
- <pre class="lines">
482
-
483
-
484
- 419
485
- 420
486
- 421</pre>
487
- </td>
488
- <td>
489
- <pre class="code"><span class="info file"># File 'lib/puppeteer/page.rb', line 419</span>
490
-
491
- <span class='kw'>def</span> <span class='id identifier rubyid_type'>type</span>
492
- <span class='ivar'>@type</span>
493
- <span class='kw'>end</span></pre>
494
- </td>
495
- </tr>
496
- </table>
497
- </div>
498
-
499
-
500
- <span id=""></span>
501
- <div class="method_details ">
502
- <h3 class="signature " id="url-instance_method">
503
-
504
- #<strong>url</strong> &#x21d2; <tt>Object</tt> <span class="extras">(readonly)</span>
505
-
506
-
507
-
508
-
509
-
510
- </h3><div class="docstring">
511
- <div class="discussion">
512
-
513
- <p>Returns the value of attribute url.</p>
514
-
515
-
516
- </div>
517
- </div>
518
- <div class="tags">
519
-
520
-
521
- </div><table class="source_code">
522
- <tr>
523
- <td>
524
- <pre class="lines">
525
-
526
-
527
- 419
528
- 420
529
- 421</pre>
530
- </td>
531
- <td>
532
- <pre class="code"><span class="info file"># File 'lib/puppeteer/page.rb', line 419</span>
533
-
534
- <span class='kw'>def</span> <span class='id identifier rubyid_url'>url</span>
535
- <span class='ivar'>@url</span>
536
- <span class='kw'>end</span></pre>
537
- </td>
538
- </tr>
539
- </table>
540
- </div>
541
-
542
- </div>
543
-
544
-
545
- </div>
546
-
547
- <div id="footer">
548
- Generated on Wed Jun 24 03:07:59 2020 by
549
- <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
550
- 0.9.24 (ruby-2.6.3).
551
- </div>
552
-
553
- </div>
554
- </body>
555
- </html>