ovto 0.5.0 → 0.6.2

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 (69) hide show
  1. checksums.yaml +4 -4
  2. data/.gitmodules +3 -0
  3. data/CHANGELOG.md +14 -2
  4. data/Gemfile +2 -3
  5. data/Gemfile.lock +23 -27
  6. data/book/SUMMARY.md +2 -0
  7. data/book/api/actions.md +1 -1
  8. data/book/api/middleware.md +99 -0
  9. data/book/api/pure_component.md +3 -0
  10. data/docs/api/Array.html +190 -0
  11. data/docs/api/Hash.html +196 -0
  12. data/docs/api/Ovto/Actions.html +128 -40
  13. data/docs/api/Ovto/App.html +254 -40
  14. data/docs/api/Ovto/Component/MoreThanOneNode.html +6 -6
  15. data/docs/api/Ovto/Component.html +96 -29
  16. data/docs/api/Ovto/Middleware/Actions.html +428 -0
  17. data/docs/api/Ovto/Middleware/Base.html +605 -0
  18. data/docs/api/Ovto/Middleware/Component.html +354 -0
  19. data/docs/api/Ovto/Middleware.html +286 -0
  20. data/docs/api/Ovto/PureComponent/StateIsNotAvailable.html +6 -6
  21. data/docs/api/Ovto/PureComponent.html +11 -11
  22. data/docs/api/Ovto/Runtime.html +7 -7
  23. data/docs/api/Ovto/State/MissingValue.html +6 -6
  24. data/docs/api/Ovto/State/{UnknownKey.html → UnknownStateKey.html} +11 -11
  25. data/docs/api/Ovto/State.html +59 -43
  26. data/docs/api/Ovto/WiredActionSet.html +636 -0
  27. data/docs/api/Ovto/WiredActions.html +78 -35
  28. data/docs/api/Ovto.html +223 -30
  29. data/docs/api/_index.html +77 -11
  30. data/docs/api/actions.html +29 -3
  31. data/docs/api/app.html +28 -2
  32. data/docs/api/class_list.html +3 -3
  33. data/docs/api/component.html +30 -4
  34. data/docs/api/css/style.css +3 -2
  35. data/docs/api/fetch.html +30 -4
  36. data/docs/api/file.README.html +76 -78
  37. data/docs/api/file_list.html +2 -2
  38. data/docs/api/frames.html +2 -2
  39. data/docs/api/index.html +76 -78
  40. data/docs/api/js/app.js +14 -3
  41. data/docs/api/method_list.html +303 -31
  42. data/docs/api/middleware.html +498 -0
  43. data/docs/api/pure_component.html +428 -0
  44. data/docs/api/state.html +28 -2
  45. data/docs/api/top-level-namespace.html +11 -9
  46. data/docs/guides/debugging.html +28 -2
  47. data/docs/guides/development.html +28 -2
  48. data/docs/guides/install.html +28 -2
  49. data/docs/guides/tutorial.html +28 -2
  50. data/docs/index.html +28 -2
  51. data/docs/search_index.json +1 -1
  52. data/examples/sinatra/Gemfile +2 -0
  53. data/examples/sinatra/Gemfile.lock +32 -30
  54. data/examples/sinatra/app.rb +1 -4
  55. data/examples/sinatra/config.ru +6 -6
  56. data/examples/static/Gemfile.lock +9 -9
  57. data/lib/ovto/actions.rb +11 -0
  58. data/lib/ovto/app.rb +37 -13
  59. data/lib/ovto/component.rb +130 -67
  60. data/lib/ovto/middleware.rb +121 -0
  61. data/lib/ovto/pure_component.rb +1 -1
  62. data/lib/ovto/state.rb +13 -5
  63. data/lib/ovto/version.rb +1 -1
  64. data/lib/ovto/wired_action_set.rb +40 -0
  65. data/lib/ovto/wired_actions.rb +49 -11
  66. data/lib/ovto.rb +26 -0
  67. data/ovto.gemspec +1 -1
  68. metadata +21 -11
  69. data/docs/api/pure_component.md +0 -27
@@ -6,15 +6,15 @@
6
6
  <title>
7
7
  Class: Ovto::WiredActions
8
8
 
9
- &mdash; Documentation by YARD 0.9.19
9
+ &mdash; Documentation by YARD 0.9.26
10
10
 
11
11
  </title>
12
12
 
13
- <link rel="stylesheet" href="../css/style.css" type="text/css" charset="utf-8" />
13
+ <link rel="stylesheet" href="../css/style.css" type="text/css" />
14
14
 
15
- <link rel="stylesheet" href="../css/common.css" type="text/css" charset="utf-8" />
15
+ <link rel="stylesheet" href="../css/common.css" type="text/css" />
16
16
 
17
- <script type="text/javascript" charset="utf-8">
17
+ <script type="text/javascript">
18
18
  pathId = "Ovto::WiredActions";
19
19
  relpath = '../';
20
20
  </script>
@@ -141,7 +141,7 @@
141
141
  <li class="public ">
142
142
  <span class="summary_signature">
143
143
 
144
- <a href="#initialize-instance_method" title="#initialize (instance method)">#<strong>initialize</strong>(actions, app, runtime) &#x21d2; WiredActions </a>
144
+ <a href="#initialize-instance_method" title="#initialize (instance method)">#<strong>initialize</strong>(actions, app, runtime, parent) &#x21d2; WiredActions </a>
145
145
 
146
146
 
147
147
 
@@ -158,7 +158,7 @@
158
158
 
159
159
 
160
160
  <span class="summary_desc"><div class='inline'>
161
- <p>A new instance of WiredActions.</p>
161
+ <p>Create a WiredActions.</p>
162
162
  </div></span>
163
163
 
164
164
  </li>
@@ -217,7 +217,7 @@
217
217
  <div class="method_details first">
218
218
  <h3 class="signature first" id="initialize-instance_method">
219
219
 
220
- #<strong>initialize</strong>(actions, app, runtime) &#x21d2; <tt><span class='object_link'><a href="" title="Ovto::WiredActions (class)">WiredActions</a></span></tt>
220
+ #<strong>initialize</strong>(actions, app, runtime, parent) &#x21d2; <tt><span class='object_link'><a href="" title="Ovto::WiredActions (class)">WiredActions</a></span></tt>
221
221
 
222
222
 
223
223
 
@@ -226,7 +226,16 @@
226
226
  </h3><div class="docstring">
227
227
  <div class="discussion">
228
228
 
229
- <p>Returns a new instance of WiredActions</p>
229
+ <p>Create a WiredActions</p>
230
+ <ul><li>
231
+ <p>actions: Ovto::Actions</p>
232
+ </li><li>
233
+ <p>app: Ovto::App</p>
234
+ </li><li>
235
+ <p>runtime: Ovto::Runtime (to call scheduleRender after state change)</p>
236
+ </li><li>
237
+ <p>parent: WiredActionSet</p>
238
+ </li></ul>
230
239
 
231
240
 
232
241
  </div>
@@ -240,15 +249,15 @@
240
249
  <pre class="lines">
241
250
 
242
251
 
243
- 6
244
- 7
245
- 8</pre>
252
+ 12
253
+ 13
254
+ 14</pre>
246
255
  </td>
247
256
  <td>
248
- <pre class="code"><span class="info file"># File 'lib/ovto/wired_actions.rb', line 6</span>
257
+ <pre class="code"><span class="info file"># File 'lib/ovto/wired_actions.rb', line 12</span>
249
258
 
250
- <span class='kw'>def</span> <span class='id identifier rubyid_initialize'>initialize</span><span class='lparen'>(</span><span class='id identifier rubyid_actions'>actions</span><span class='comma'>,</span> <span class='id identifier rubyid_app'>app</span><span class='comma'>,</span> <span class='id identifier rubyid_runtime'>runtime</span><span class='rparen'>)</span>
251
- <span class='ivar'>@actions</span><span class='comma'>,</span> <span class='ivar'>@app</span><span class='comma'>,</span> <span class='ivar'>@runtime</span> <span class='op'>=</span> <span class='id identifier rubyid_actions'>actions</span><span class='comma'>,</span> <span class='id identifier rubyid_app'>app</span><span class='comma'>,</span> <span class='id identifier rubyid_runtime'>runtime</span>
259
+ <span class='kw'>def</span> <span class='id identifier rubyid_initialize'>initialize</span><span class='lparen'>(</span><span class='id identifier rubyid_actions'>actions</span><span class='comma'>,</span> <span class='id identifier rubyid_app'>app</span><span class='comma'>,</span> <span class='id identifier rubyid_runtime'>runtime</span><span class='comma'>,</span> <span class='id identifier rubyid_parent'>parent</span><span class='rparen'>)</span>
260
+ <span class='ivar'>@actions</span><span class='comma'>,</span> <span class='ivar'>@app</span><span class='comma'>,</span> <span class='ivar'>@runtime</span><span class='comma'>,</span> <span class='ivar'>@parent</span> <span class='op'>=</span> <span class='id identifier rubyid_actions'>actions</span><span class='comma'>,</span> <span class='id identifier rubyid_app'>app</span><span class='comma'>,</span> <span class='id identifier rubyid_runtime'>runtime</span><span class='comma'>,</span> <span class='id identifier rubyid_parent'>parent</span>
252
261
  <span class='kw'>end</span></pre>
253
262
  </td>
254
263
  </tr>
@@ -272,25 +281,59 @@
272
281
 
273
282
 
274
283
 
275
- </h3><table class="source_code">
284
+ </h3><div class="docstring">
285
+ <div class="discussion">
286
+
287
+
288
+ </div>
289
+ </div>
290
+ <div class="tags">
291
+
292
+ <p class="tag_title">Raises:</p>
293
+ <ul class="raise">
294
+
295
+ <li>
296
+
297
+
298
+ <span class='type'>(<tt>NoMethodError</tt>)</span>
299
+
300
+
301
+
302
+ </li>
303
+
304
+ </ul>
305
+
306
+ </div><table class="source_code">
276
307
  <tr>
277
308
  <td>
278
309
  <pre class="lines">
279
310
 
280
311
 
281
- 10
282
- 11
283
- 12
284
- 13
285
- 14</pre>
312
+ 16
313
+ 17
314
+ 18
315
+ 19
316
+ 20
317
+ 21
318
+ 22
319
+ 23
320
+ 24
321
+ 25
322
+ 26</pre>
286
323
  </td>
287
324
  <td>
288
- <pre class="code"><span class="info file"># File 'lib/ovto/wired_actions.rb', line 10</span>
325
+ <pre class="code"><span class="info file"># File 'lib/ovto/wired_actions.rb', line 16</span>
289
326
 
290
327
  <span class='kw'>def</span> <span class='id identifier rubyid_method_missing'>method_missing</span><span class='lparen'>(</span><span class='id identifier rubyid_name'>name</span><span class='comma'>,</span> <span class='id identifier rubyid_args_hash'>args_hash</span><span class='op'>=</span><span class='lbrace'>{</span><span class='rbrace'>}</span><span class='rparen'>)</span>
291
- <span class='const'><span class='object_link'><a href="../Ovto.html" title="Ovto (module)">Ovto</a></span></span><span class='period'>.</span><span class='id identifier rubyid_log_error'><span class='object_link'><a href="../Ovto.html#log_error-class_method" title="Ovto.log_error (method)">log_error</a></span></span> <span class='lbrace'>{</span>
292
- <span class='id identifier rubyid_invoke_action'>invoke_action</span><span class='lparen'>(</span><span class='id identifier rubyid_name'>name</span><span class='comma'>,</span> <span class='id identifier rubyid_args_hash'>args_hash</span><span class='rparen'>)</span>
293
- <span class='rbrace'>}</span>
328
+ <span class='id identifier rubyid_raise'>raise</span> <span class='const'>NoMethodError</span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>undefined method `</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_name'>name</span><span class='embexpr_end'>}</span><span class='tstring_content'>&#39; on </span><span class='embexpr_beg'>#{</span><span class='kw'>self</span><span class='embexpr_end'>}</span><span class='tstring_end'>&quot;</span></span> <span class='kw'>unless</span> <span class='id identifier rubyid_respond_to?'>respond_to?</span><span class='lparen'>(</span><span class='id identifier rubyid_name'>name</span><span class='rparen'>)</span>
329
+ <span class='kw'>if</span> <span class='ivar'>@actions</span><span class='period'>.</span><span class='id identifier rubyid_respond_to?'>respond_to?</span><span class='lparen'>(</span><span class='id identifier rubyid_name'>name</span><span class='rparen'>)</span>
330
+ <span class='const'><span class='object_link'><a href="../Ovto.html" title="Ovto (module)">Ovto</a></span></span><span class='period'>.</span><span class='id identifier rubyid_log_error'><span class='object_link'><a href="../Ovto.html#log_error-class_method" title="Ovto.log_error (method)">log_error</a></span></span> <span class='lbrace'>{</span>
331
+ <span class='const'><span class='object_link'><a href="../Ovto.html" title="Ovto (module)">Ovto</a></span></span><span class='period'>.</span><span class='id identifier rubyid_debug_trace_log'><span class='object_link'><a href="../Ovto.html#debug_trace_log-class_method" title="Ovto.debug_trace_log (method)">debug_trace_log</a></span></span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>invoke action \&quot;</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_name'>name</span><span class='embexpr_end'>}</span><span class='tstring_content'>\&quot; on </span><span class='embexpr_beg'>#{</span><span class='ivar'>@actions</span><span class='period'>.</span><span class='id identifier rubyid_class'>class</span><span class='embexpr_end'>}</span><span class='tstring_end'>&quot;</span></span><span class='rparen'>)</span>
332
+ <span class='id identifier rubyid_invoke_action'>invoke_action</span><span class='lparen'>(</span><span class='id identifier rubyid_name'>name</span><span class='comma'>,</span> <span class='id identifier rubyid_args_hash'>args_hash</span><span class='rparen'>)</span>
333
+ <span class='rbrace'>}</span>
334
+ <span class='kw'>else</span>
335
+ <span class='ivar'>@parent</span><span class='lbracket'>[</span><span class='id identifier rubyid_name'>name</span><span class='rbracket'>]</span><span class='lbracket'>[</span><span class='const'><span class='object_link'><a href="WiredActionSet.html" title="Ovto::WiredActionSet (class)">WiredActionSet</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="WiredActionSet.html#THE_MIDDLEWARE_ITSELF-constant" title="Ovto::WiredActionSet::THE_MIDDLEWARE_ITSELF (constant)">THE_MIDDLEWARE_ITSELF</a></span></span><span class='rbracket'>]</span> <span class='comment'># WiredActions of a middleware named `name`
336
+ </span> <span class='kw'>end</span>
294
337
  <span class='kw'>end</span></pre>
295
338
  </td>
296
339
  </tr>
@@ -330,12 +373,12 @@
330
373
  <pre class="lines">
331
374
 
332
375
 
333
- 21
334
- 22
335
- 23</pre>
376
+ 33
377
+ 34
378
+ 35</pre>
336
379
  </td>
337
380
  <td>
338
- <pre class="code"><span class="info file"># File 'lib/ovto/wired_actions.rb', line 21</span>
381
+ <pre class="code"><span class="info file"># File 'lib/ovto/wired_actions.rb', line 33</span>
339
382
 
340
383
  <span class='kw'>def</span> <span class='id identifier rubyid__app'>_app</span>
341
384
  <span class='ivar'>@app</span>
@@ -382,15 +425,15 @@
382
425
  <pre class="lines">
383
426
 
384
427
 
385
- 16
386
- 17
387
- 18</pre>
428
+ 28
429
+ 29
430
+ 30</pre>
388
431
  </td>
389
432
  <td>
390
- <pre class="code"><span class="info file"># File 'lib/ovto/wired_actions.rb', line 16</span>
433
+ <pre class="code"><span class="info file"># File 'lib/ovto/wired_actions.rb', line 28</span>
391
434
 
392
435
  <span class='kw'>def</span> <span class='id identifier rubyid_respond_to?'>respond_to?</span><span class='lparen'>(</span><span class='id identifier rubyid_name'>name</span><span class='rparen'>)</span>
393
- <span class='ivar'>@actions</span><span class='period'>.</span><span class='id identifier rubyid_respond_to?'>respond_to?</span><span class='lparen'>(</span><span class='id identifier rubyid_name'>name</span><span class='rparen'>)</span>
436
+ <span class='ivar'>@actions</span><span class='period'>.</span><span class='id identifier rubyid_respond_to?'>respond_to?</span><span class='lparen'>(</span><span class='id identifier rubyid_name'>name</span><span class='rparen'>)</span> <span class='op'>||</span> <span class='ivar'>@parent</span><span class='period'>.</span><span class='id identifier rubyid_middleware_names'>middleware_names</span><span class='period'>.</span><span class='id identifier rubyid_include?'>include?</span><span class='lparen'>(</span><span class='id identifier rubyid_name'>name</span><span class='rparen'>)</span>
394
437
  <span class='kw'>end</span></pre>
395
438
  </td>
396
439
  </tr>
@@ -402,9 +445,9 @@
402
445
  </div>
403
446
 
404
447
  <div id="footer">
405
- Generated on Thu Aug 8 01:14:40 2019 by
448
+ Generated on Fri Oct 22 08:18:18 2021 by
406
449
  <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
407
- 0.9.19 (ruby-2.5.5).
450
+ 0.9.26 (ruby-3.0.2).
408
451
  </div>
409
452
 
410
453
  </div>
data/docs/api/Ovto.html CHANGED
@@ -6,15 +6,15 @@
6
6
  <title>
7
7
  Module: Ovto
8
8
 
9
- &mdash; Documentation by YARD 0.9.19
9
+ &mdash; Documentation by YARD 0.9.26
10
10
 
11
11
  </title>
12
12
 
13
- <link rel="stylesheet" href="css/style.css" type="text/css" charset="utf-8" />
13
+ <link rel="stylesheet" href="css/style.css" type="text/css" />
14
14
 
15
- <link rel="stylesheet" href="css/common.css" type="text/css" charset="utf-8" />
15
+ <link rel="stylesheet" href="css/common.css" type="text/css" />
16
16
 
17
- <script type="text/javascript" charset="utf-8">
17
+ <script type="text/javascript">
18
18
  pathId = "Ovto";
19
19
  relpath = '';
20
20
  </script>
@@ -79,7 +79,7 @@
79
79
  <dl>
80
80
  <dt>Defined in:</dt>
81
81
  <dd>lib/ovto.rb<span class="defines">,<br />
82
- lib/ovto/app.rb,<br /> lib/ovto/fetch.rb,<br /> lib/ovto/state.rb,<br /> lib/ovto/actions.rb,<br /> lib/ovto/runtime.rb,<br /> lib/ovto/version.rb,<br /> lib/ovto/component.rb,<br /> lib/ovto/wired_actions.rb,<br /> lib/ovto/pure_component.rb</span>
82
+ lib/ovto/app.rb,<br /> lib/ovto/fetch.rb,<br /> lib/ovto/state.rb,<br /> lib/ovto/actions.rb,<br /> lib/ovto/runtime.rb,<br /> lib/ovto/version.rb,<br /> lib/ovto/component.rb,<br /> lib/ovto/middleware.rb,<br /> lib/ovto/wired_actions.rb,<br /> lib/ovto/pure_component.rb,<br /> lib/ovto/wired_action_set.rb</span>
83
83
  </dd>
84
84
  </dl>
85
85
 
@@ -89,9 +89,11 @@
89
89
  <p class="children">
90
90
 
91
91
 
92
+ <strong class="modules">Modules:</strong> <span class='object_link'><a href="Ovto/Middleware.html" title="Ovto::Middleware (module)">Middleware</a></span>
93
+
92
94
 
93
95
 
94
- <strong class="classes">Classes:</strong> <span class='object_link'><a href="Ovto/Actions.html" title="Ovto::Actions (class)">Actions</a></span>, <span class='object_link'><a href="Ovto/App.html" title="Ovto::App (class)">App</a></span>, <span class='object_link'><a href="Ovto/Component.html" title="Ovto::Component (class)">Component</a></span>, <span class='object_link'><a href="Ovto/PureComponent.html" title="Ovto::PureComponent (class)">PureComponent</a></span>, <span class='object_link'><a href="Ovto/Runtime.html" title="Ovto::Runtime (class)">Runtime</a></span>, <span class='object_link'><a href="Ovto/State.html" title="Ovto::State (class)">State</a></span>, <span class='object_link'><a href="Ovto/WiredActions.html" title="Ovto::WiredActions (class)">WiredActions</a></span>
96
+ <strong class="classes">Classes:</strong> <span class='object_link'><a href="Ovto/Actions.html" title="Ovto::Actions (class)">Actions</a></span>, <span class='object_link'><a href="Ovto/App.html" title="Ovto::App (class)">App</a></span>, <span class='object_link'><a href="Ovto/Component.html" title="Ovto::Component (class)">Component</a></span>, <span class='object_link'><a href="Ovto/PureComponent.html" title="Ovto::PureComponent (class)">PureComponent</a></span>, <span class='object_link'><a href="Ovto/Runtime.html" title="Ovto::Runtime (class)">Runtime</a></span>, <span class='object_link'><a href="Ovto/State.html" title="Ovto::State (class)">State</a></span>, <span class='object_link'><a href="Ovto/WiredActionSet.html" title="Ovto::WiredActionSet (class)">WiredActionSet</a></span>, <span class='object_link'><a href="Ovto/WiredActions.html" title="Ovto::WiredActions (class)">WiredActions</a></span>
95
97
 
96
98
 
97
99
  </p>
@@ -107,7 +109,12 @@
107
109
  <dt id="VERSION-constant" class="">VERSION =
108
110
 
109
111
  </dt>
110
- <dd><pre class="code"><span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>0.4.1</span><span class='tstring_end'>&#39;</span></span></pre></dd>
112
+ <dd><pre class="code"><span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>0.6.1</span><span class='tstring_end'>&#39;</span></span></pre></dd>
113
+
114
+ <dt id="VALID_NAME_REXP-constant" class="">VALID_NAME_REXP =
115
+
116
+ </dt>
117
+ <dd><pre class="code"><span class='tstring'><span class='regexp_beg'>/</span><span class='tstring_content'>\A[a-zA-Z0-9_]+\z</span><span class='regexp_end'>/</span></span></pre></dd>
111
118
 
112
119
  </dl>
113
120
 
@@ -285,6 +292,54 @@
285
292
  <p>Call block.</p>
286
293
  </div></span>
287
294
 
295
+ </li>
296
+
297
+
298
+ <li class="public ">
299
+ <span class="summary_signature">
300
+
301
+ <a href="#Middleware-class_method" title="Middleware (class method)">.<strong>Middleware</strong>(name) &#x21d2; Object </a>
302
+
303
+
304
+
305
+ </span>
306
+
307
+
308
+
309
+
310
+
311
+
312
+
313
+
314
+
315
+ <span class="summary_desc"><div class='inline'>
316
+ <p>Create an ancestor of middleware class Example: class MiddlewareExample &lt; Ovto::Middleware(“middleware_example”).</p>
317
+ </div></span>
318
+
319
+ </li>
320
+
321
+
322
+ <li class="public ">
323
+ <span class="summary_signature">
324
+
325
+ <a href="#send_args_with_state-class_method" title="send_args_with_state (class method)">.<strong>send_args_with_state</strong>(obj, meth, args, state, &amp;block) &#x21d2; Object </a>
326
+
327
+
328
+
329
+ </span>
330
+
331
+
332
+
333
+
334
+
335
+
336
+
337
+
338
+
339
+ <span class="summary_desc"><div class='inline'>
340
+ <p>Something like `obj.meth(state: state, **args, &amp;block)` Safe even if `obj.meth` does not have `state:`.</p>
341
+ </div></span>
342
+
288
343
  </li>
289
344
 
290
345
 
@@ -385,10 +440,10 @@
385
440
  <pre class="lines">
386
441
 
387
442
 
388
- 20</pre>
443
+ 23</pre>
389
444
  </td>
390
445
  <td>
391
- <pre class="code"><span class="info file"># File 'lib/ovto.rb', line 20</span>
446
+ <pre class="code"><span class="info file"># File 'lib/ovto.rb', line 23</span>
392
447
 
393
448
  <span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_debug_trace'>debug_trace</span><span class='semicolon'>;</span> <span class='ivar'>@debug_trace</span><span class='semicolon'>;</span> <span class='kw'>end</span></pre>
394
449
  </td>
@@ -411,10 +466,10 @@
411
466
  <pre class="lines">
412
467
 
413
468
 
414
- 21</pre>
469
+ 24</pre>
415
470
  </td>
416
471
  <td>
417
- <pre class="code"><span class="info file"># File 'lib/ovto.rb', line 21</span>
472
+ <pre class="code"><span class="info file"># File 'lib/ovto.rb', line 24</span>
418
473
 
419
474
  <span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_debug_trace='>debug_trace=</span><span class='lparen'>(</span><span class='id identifier rubyid_bool'>bool</span><span class='rparen'>)</span><span class='semicolon'>;</span> <span class='ivar'>@debug_trace</span> <span class='op'>=</span> <span class='id identifier rubyid_bool'>bool</span><span class='semicolon'>;</span> <span class='kw'>end</span></pre>
420
475
  </td>
@@ -437,12 +492,12 @@
437
492
  <pre class="lines">
438
493
 
439
494
 
440
- 22
441
- 23
442
- 24</pre>
495
+ 25
496
+ 26
497
+ 27</pre>
443
498
  </td>
444
499
  <td>
445
- <pre class="code"><span class="info file"># File 'lib/ovto.rb', line 22</span>
500
+ <pre class="code"><span class="info file"># File 'lib/ovto.rb', line 25</span>
446
501
 
447
502
  <span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_debug_trace_log'>debug_trace_log</span><span class='lparen'>(</span><span class='id identifier rubyid_msg'>msg</span><span class='rparen'>)</span>
448
503
  <span class='id identifier rubyid_console'><span class='object_link'><a href="top-level-namespace.html#console-instance_method" title="#console (method)">console</a></span></span><span class='period'>.</span><span class='id identifier rubyid_log'>log</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>Ovto: </span><span class='tstring_end'>&quot;</span></span><span class='op'>+</span><span class='id identifier rubyid_msg'>msg</span><span class='rparen'>)</span> <span class='kw'>if</span> <span class='ivar'>@debug_trace</span>
@@ -556,16 +611,16 @@
556
611
  <pre class="lines">
557
612
 
558
613
 
559
- 27
560
- 28
561
- 29
562
614
  30
563
615
  31
564
616
  32
565
- 33</pre>
617
+ 33
618
+ 34
619
+ 35
620
+ 36</pre>
566
621
  </td>
567
622
  <td>
568
- <pre class="code"><span class="info file"># File 'lib/ovto.rb', line 27</span>
623
+ <pre class="code"><span class="info file"># File 'lib/ovto.rb', line 30</span>
569
624
 
570
625
  <span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_inspect'>inspect</span><span class='lparen'>(</span><span class='id identifier rubyid_obj'>obj</span><span class='rparen'>)</span>
571
626
  <span class='kw'>if</span> <span class='backtick'>`</span><span class='tstring_content'>obj.$inspect</span><span class='tstring_end'>`</span></span>
@@ -591,8 +646,7 @@
591
646
  </h3><div class="docstring">
592
647
  <div class="discussion">
593
648
 
594
- <p>Call block. If an exception is raised and there is a tag with
595
- `id=&#39;ovto-debug&#39;`, describe the error in that tag</p>
649
+ <p>Call block. If an exception is raised and there is a tag with `id=&#39;ovto-debug&#39;`, describe the error in that tag</p>
596
650
 
597
651
 
598
652
  </div>
@@ -606,9 +660,6 @@
606
660
  <pre class="lines">
607
661
 
608
662
 
609
- 37
610
- 38
611
- 39
612
663
  40
613
664
  41
614
665
  42
@@ -627,10 +678,13 @@
627
678
  55
628
679
  56
629
680
  57
630
- 58</pre>
681
+ 58
682
+ 59
683
+ 60
684
+ 61</pre>
631
685
  </td>
632
686
  <td>
633
- <pre class="code"><span class="info file"># File 'lib/ovto.rb', line 37</span>
687
+ <pre class="code"><span class="info file"># File 'lib/ovto.rb', line 40</span>
634
688
 
635
689
  <span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_log_error'>log_error</span><span class='lparen'>(</span><span class='op'>&amp;</span><span class='id identifier rubyid_block'>block</span><span class='rparen'>)</span>
636
690
  <span class='kw'>return</span> <span class='id identifier rubyid_block'>block</span><span class='period'>.</span><span class='id identifier rubyid_call'>call</span>
@@ -643,7 +697,7 @@
643
697
  div.textContent = &quot;ERROR: &quot; + </span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_ex'>ex</span><span class='period'>.</span><span class='id identifier rubyid_class'>class</span><span class='period'>.</span><span class='id identifier rubyid_name'>name</span><span class='embexpr_end'>}</span><span class='tstring_content'>;
644
698
  var ul = document.createElement(&#39;ul&#39;);
645
699
  // Note: ex.backtrace may be an Array or a String
646
- </span><span class='embexpr_beg'>#{</span><span class='const'>Array</span><span class='lparen'>(</span><span class='id identifier rubyid_ex'>ex</span><span class='period'>.</span><span class='id identifier rubyid_backtrace'>backtrace</span><span class='rparen'>)</span><span class='embexpr_end'>}</span><span class='tstring_content'>.forEach(function(line){
700
+ </span><span class='embexpr_beg'>#{</span><span class='const'><span class='object_link'><a href="Array.html" title="Array (class)">Array</a></span></span><span class='lparen'>(</span><span class='id identifier rubyid_ex'>ex</span><span class='period'>.</span><span class='id identifier rubyid_backtrace'>backtrace</span><span class='rparen'>)</span><span class='embexpr_end'>}</span><span class='tstring_content'>.forEach(function(line){
647
701
  var li = document.createElement(&#39;li&#39;);
648
702
  li.textContent = line;
649
703
  ul.appendChild(li);
@@ -657,6 +711,145 @@
657
711
  </td>
658
712
  </tr>
659
713
  </table>
714
+ </div>
715
+
716
+ <div class="method_details ">
717
+ <h3 class="signature " id="Middleware-class_method">
718
+
719
+ .<strong>Middleware</strong>(name) &#x21d2; <tt>Object</tt>
720
+
721
+
722
+
723
+
724
+
725
+ </h3><div class="docstring">
726
+ <div class="discussion">
727
+
728
+ <p>Create an ancestor of middleware class Example:</p>
729
+
730
+ <pre class="code ruby"><code class="ruby">class MiddlewareExample &lt; Ovto::Middleware(&quot;middleware_example&quot;)
731
+ </code></pre>
732
+
733
+
734
+ </div>
735
+ </div>
736
+ <div class="tags">
737
+
738
+
739
+ </div><table class="source_code">
740
+ <tr>
741
+ <td>
742
+ <pre class="lines">
743
+
744
+
745
+ 6
746
+ 7
747
+ 8
748
+ 9
749
+ 10
750
+ 11
751
+ 12
752
+ 13
753
+ 14
754
+ 15
755
+ 16
756
+ 17
757
+ 18</pre>
758
+ </td>
759
+ <td>
760
+ <pre class="code"><span class="info file"># File 'lib/ovto/middleware.rb', line 6</span>
761
+
762
+ <span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='const'>Middleware</span><span class='lparen'>(</span><span class='id identifier rubyid_name'>name</span><span class='rparen'>)</span>
763
+ <span class='kw'>unless</span> <span class='const'><span class='object_link'><a href="#VALID_NAME_REXP-constant" title="Ovto::VALID_NAME_REXP (constant)">VALID_NAME_REXP</a></span></span> <span class='op'>=~</span> <span class='id identifier rubyid_name'>name</span>
764
+ <span class='id identifier rubyid_raise'>raise</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>invalid middleware name: </span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_name'>name</span><span class='embexpr_end'>}</span><span class='tstring_end'>&quot;</span></span>
765
+ <span class='kw'>end</span>
766
+ <span class='kw'>return</span> <span class='const'>Class</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='lparen'>(</span><span class='const'><span class='object_link'><a href="" title="Ovto (module)">Ovto</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="Ovto/Middleware.html" title="Ovto::Middleware (module)">Middleware</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="Ovto/Middleware/Base.html" title="Ovto::Middleware::Base (class)">Base</a></span></span><span class='rparen'>)</span><span class='lbrace'>{</span>
767
+ <span class='id identifier rubyid_const_set'>const_set</span><span class='lparen'>(</span><span class='symbol'>:OVTO_MIDDLEWARE_NAME</span><span class='comma'>,</span> <span class='id identifier rubyid_name'>name</span><span class='rparen'>)</span>
768
+ <span class='id identifier rubyid_const_set'>const_set</span><span class='lparen'>(</span><span class='symbol'>:State</span><span class='comma'>,</span> <span class='const'><span class='object_link'><a href="" title="Ovto (module)">Ovto</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="Ovto/State.html" title="Ovto::State (class)">State</a></span></span><span class='rparen'>)</span>
769
+ <span class='id identifier rubyid_const_set'>const_set</span><span class='lparen'>(</span><span class='symbol'>:Actions</span><span class='comma'>,</span> <span class='const'>Class</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='lparen'>(</span><span class='const'><span class='object_link'><a href="" title="Ovto (module)">Ovto</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="Ovto/Middleware.html" title="Ovto::Middleware (module)">Middleware</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="Ovto/Middleware/Actions.html" title="Ovto::Middleware::Actions (class)">Actions</a></span></span><span class='rparen'>)</span><span class='rparen'>)</span>
770
+ <span class='id identifier rubyid_const_get'>const_get</span><span class='lparen'>(</span><span class='symbol'>:Actions</span><span class='rparen'>)</span><span class='period'>.</span><span class='id identifier rubyid_const_set'>const_set</span><span class='lparen'>(</span><span class='symbol'>:OVTO_MIDDLEWARE_NAME</span><span class='comma'>,</span> <span class='id identifier rubyid_name'>name</span><span class='rparen'>)</span>
771
+ <span class='id identifier rubyid_const_set'>const_set</span><span class='lparen'>(</span><span class='symbol'>:Component</span><span class='comma'>,</span> <span class='const'>Class</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='lparen'>(</span><span class='const'><span class='object_link'><a href="" title="Ovto (module)">Ovto</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="Ovto/Middleware.html" title="Ovto::Middleware (module)">Middleware</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="Ovto/Middleware/Component.html" title="Ovto::Middleware::Component (class)">Component</a></span></span><span class='rparen'>)</span><span class='rparen'>)</span>
772
+ <span class='id identifier rubyid_const_get'>const_get</span><span class='lparen'>(</span><span class='symbol'>:Component</span><span class='rparen'>)</span><span class='period'>.</span><span class='id identifier rubyid_const_set'>const_set</span><span class='lparen'>(</span><span class='symbol'>:OVTO_MIDDLEWARE_NAME</span><span class='comma'>,</span> <span class='id identifier rubyid_name'>name</span><span class='rparen'>)</span>
773
+ <span class='rbrace'>}</span>
774
+ <span class='kw'>end</span></pre>
775
+ </td>
776
+ </tr>
777
+ </table>
778
+ </div>
779
+
780
+ <div class="method_details ">
781
+ <h3 class="signature " id="send_args_with_state-class_method">
782
+
783
+ .<strong>send_args_with_state</strong>(obj, meth, args, state, &amp;block) &#x21d2; <tt>Object</tt>
784
+
785
+
786
+
787
+
788
+
789
+ </h3><div class="docstring">
790
+ <div class="discussion">
791
+
792
+ <p>Something like `obj.meth(state: state, **args, &amp;block)` Safe even if `obj.meth` does not have `state:`</p>
793
+
794
+
795
+ </div>
796
+ </div>
797
+ <div class="tags">
798
+
799
+
800
+ </div><table class="source_code">
801
+ <tr>
802
+ <td>
803
+ <pre class="lines">
804
+
805
+
806
+ 65
807
+ 66
808
+ 67
809
+ 68
810
+ 69
811
+ 70
812
+ 71
813
+ 72
814
+ 73
815
+ 74
816
+ 75
817
+ 76
818
+ 77
819
+ 78
820
+ 79
821
+ 80
822
+ 81
823
+ 82
824
+ 83
825
+ 84</pre>
826
+ </td>
827
+ <td>
828
+ <pre class="code"><span class="info file"># File 'lib/ovto.rb', line 65</span>
829
+
830
+ <span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_send_args_with_state'>send_args_with_state</span><span class='lparen'>(</span><span class='id identifier rubyid_obj'>obj</span><span class='comma'>,</span> <span class='id identifier rubyid_meth'>meth</span><span class='comma'>,</span> <span class='id identifier rubyid_args'>args</span><span class='comma'>,</span> <span class='id identifier rubyid_state'>state</span><span class='comma'>,</span> <span class='op'>&amp;</span><span class='id identifier rubyid_block'>block</span><span class='rparen'>)</span>
831
+ <span class='id identifier rubyid_parameters'>parameters</span> <span class='op'>=</span> <span class='id identifier rubyid_obj'>obj</span><span class='period'>.</span><span class='id identifier rubyid_method'>method</span><span class='lparen'>(</span><span class='id identifier rubyid_meth'>meth</span><span class='rparen'>)</span><span class='period'>.</span><span class='id identifier rubyid_parameters'>parameters</span>
832
+ <span class='id identifier rubyid_accepts_state'>accepts_state</span> <span class='op'>=</span> <span class='backtick'>`</span><span class='tstring_content'>!parameters</span><span class='tstring_end'>`</span></span> <span class='op'>||</span> <span class='id identifier rubyid_parameters'>parameters</span><span class='period'>.</span><span class='id identifier rubyid_nil?'>nil?</span> <span class='op'>||</span> <span class='id identifier rubyid_parameters'>parameters</span><span class='period'>.</span><span class='id identifier rubyid_any?'>any?</span><span class='lbrace'>{</span><span class='op'>|</span><span class='id identifier rubyid_item'>item</span><span class='op'>|</span>
833
+ <span class='id identifier rubyid_item'>item</span> <span class='op'>==</span> <span class='lbracket'>[</span><span class='symbol'>:key</span><span class='comma'>,</span> <span class='symbol'>:state</span><span class='rbracket'>]</span> <span class='op'>||</span>
834
+ <span class='id identifier rubyid_item'>item</span> <span class='op'>==</span> <span class='lbracket'>[</span><span class='symbol'>:keyreq</span><span class='comma'>,</span> <span class='symbol'>:state</span><span class='rbracket'>]</span> <span class='op'>||</span>
835
+ <span class='id identifier rubyid_item'>item</span><span class='lbracket'>[</span><span class='int'>0</span><span class='rbracket'>]</span> <span class='op'>==</span> <span class='symbol'>:keyrest</span>
836
+ <span class='rbrace'>}</span>
837
+ <span class='kw'>if</span> <span class='id identifier rubyid_accepts_state'>accepts_state</span>
838
+ <span class='comment'># We can pass `state:` safely
839
+ </span> <span class='id identifier rubyid_args_with_state'>args_with_state</span> <span class='op'>=</span> <span class='lbrace'>{</span><span class='label'>state:</span> <span class='id identifier rubyid_state'>state</span><span class='rbrace'>}</span><span class='period'>.</span><span class='id identifier rubyid_merge'>merge</span><span class='lparen'>(</span><span class='id identifier rubyid_args'>args</span><span class='rparen'>)</span>
840
+ <span class='kw'>return</span> <span class='id identifier rubyid_obj'>obj</span><span class='period'>.</span><span class='id identifier rubyid___send__'>__send__</span><span class='lparen'>(</span><span class='id identifier rubyid_meth'>meth</span><span class='comma'>,</span> <span class='op'>**</span><span class='id identifier rubyid_args_with_state'>args_with_state</span><span class='comma'>,</span> <span class='op'>&amp;</span><span class='id identifier rubyid_block'>block</span><span class='rparen'>)</span>
841
+ <span class='kw'>else</span>
842
+ <span class='comment'># Check it is empty (see https://github.com/opal/opal/issues/1872)
843
+ </span> <span class='kw'>if</span> <span class='id identifier rubyid_args'>args</span><span class='period'>.</span><span class='id identifier rubyid_empty?'>empty?</span>
844
+ <span class='kw'>return</span> <span class='id identifier rubyid_obj'>obj</span><span class='period'>.</span><span class='id identifier rubyid___send__'>__send__</span><span class='lparen'>(</span><span class='id identifier rubyid_meth'>meth</span><span class='comma'>,</span> <span class='op'>&amp;</span><span class='id identifier rubyid_block'>block</span><span class='rparen'>)</span>
845
+ <span class='kw'>else</span>
846
+ <span class='kw'>return</span> <span class='id identifier rubyid_obj'>obj</span><span class='period'>.</span><span class='id identifier rubyid___send__'>__send__</span><span class='lparen'>(</span><span class='id identifier rubyid_meth'>meth</span><span class='comma'>,</span> <span class='op'>**</span><span class='id identifier rubyid_args'>args</span><span class='comma'>,</span> <span class='op'>&amp;</span><span class='id identifier rubyid_block'>block</span><span class='rparen'>)</span>
847
+ <span class='kw'>end</span>
848
+ <span class='kw'>end</span>
849
+ <span class='kw'>end</span></pre>
850
+ </td>
851
+ </tr>
852
+ </table>
660
853
  </div>
661
854
 
662
855
  </div>
@@ -664,9 +857,9 @@
664
857
  </div>
665
858
 
666
859
  <div id="footer">
667
- Generated on Thu Aug 8 01:14:40 2019 by
860
+ Generated on Fri Oct 22 08:18:17 2021 by
668
861
  <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
669
- 0.9.19 (ruby-2.5.5).
862
+ 0.9.26 (ruby-3.0.2).
670
863
  </div>
671
864
 
672
865
  </div>