ruff 0.0.5 → 0.0.6

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 2d19fd7b2258ee195d8ed6461a6915f95b08378d2996d050e5f7d9fc04808ce5
4
- data.tar.gz: 5f361ca976b0a14b68486879b5ff50e087bd330bd55f24ef2816b1ff83c48c3f
3
+ metadata.gz: 91f24bc9d41ba7b08fe795a8dd52ec1cc76b9eb3d9a510310f2eea826627b839
4
+ data.tar.gz: a749e0b9e91d890a905f905a02c85981050b1cc557c73d2d8a34fe221cde9283
5
5
  SHA512:
6
- metadata.gz: 3ec3967a0ffdb1c583a9e1828b7624bba12bf83bc23a6520d90dbbcdab6a4d5326fa27c45dbd8bfaad843888632fb7e22d9e617229d7f38629cc417c8756c9c2
7
- data.tar.gz: 761db5f8d827eae0586ff1f255a5ff82513acaf3ae7cff20e3374cea9ea282512f54a6874950b98213c9eb0cef15913efcabd3a99fa4c0da5e2fc8af6ceeb287
6
+ metadata.gz: 6e902920988c2efb254d735425a2484728a236001d2caa8bdd23adcf6eacca5bc36f848865dac5c58f84dae7a105efe9143b211f2c7e70fd4b7a5edafdd9b386
7
+ data.tar.gz: 43c685ac4c07cb91df80e361bc8d3e38e317915f129265bc84866d3133192b73f42e76c09a4aace19296c30781102fbaae8810114d1b46f6c7227dcfa5bcaf49
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- ruff (0.0.5)
4
+ ruff (0.0.6)
5
5
 
6
6
  GEM
7
7
  remote: https://rubygems.org/
@@ -6,7 +6,7 @@
6
6
  <title>
7
7
  Module: Ruff
8
8
 
9
- &mdash; Ruff 0.0.4 Documentation
9
+ &mdash; Ruff 0.0.6 Documentation
10
10
 
11
11
  </title>
12
12
 
@@ -78,14 +78,25 @@
78
78
 
79
79
  <dl>
80
80
  <dt>Defined in:</dt>
81
- <dd>lib/ruff.rb<span class="defines">,<br />
82
- lib/ruff/effect.rb,<br /> lib/ruff/handler.rb,<br /> lib/ruff/objects.rb,<br /> lib/ruff/version.rb</span>
81
+ <dd>lib/ruff/version.cpp.rb<span class="defines">,<br />
82
+ lib/ruff.rb,<br /> lib/ruff/version.rb</span>
83
83
  </dd>
84
84
  </dl>
85
85
 
86
86
  </div>
87
87
 
88
- <h2>Defined Under Namespace</h2>
88
+ <h2>Overview</h2><div class="docstring">
89
+ <div class="discussion">
90
+ <p>// This file is passed to CPP
91
+ include &quot;../../version.h&quot;</p>
92
+
93
+
94
+ </div>
95
+ </div>
96
+ <div class="tags">
97
+
98
+
99
+ </div><h2>Defined Under Namespace</h2>
89
100
  <p class="children">
90
101
 
91
102
 
@@ -109,7 +120,7 @@
109
120
  <dt id="VERSION-constant" class="">VERSION =
110
121
 
111
122
  </dt>
112
- <dd><pre class="code"><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>0.0.4</span><span class='tstring_end'>&quot;</span></span></pre></dd>
123
+ <dd><pre class="code"><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>0.0.6</span><span class='tstring_end'>&quot;</span></span></pre></dd>
113
124
 
114
125
  </dl>
115
126
 
@@ -301,9 +312,9 @@
301
312
  </div>
302
313
 
303
314
  <div id="footer">
304
- Generated on Wed Aug 14 22:29:58 2019 by
315
+ Generated on Wed Oct 2 22:42:03 2019 by
305
316
  <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
306
- 0.9.20 (ruby-2.6.3).
317
+ 0.9.20 (ruby-2.6.4).
307
318
  </div>
308
319
 
309
320
  </div>
@@ -6,7 +6,7 @@
6
6
  <title>
7
7
  Class: Ruff::Effect
8
8
 
9
- &mdash; Ruff 0.0.4 Documentation
9
+ &mdash; Ruff 0.0.6 Documentation
10
10
 
11
11
  </title>
12
12
 
@@ -244,13 +244,13 @@
244
244
  <pre class="lines">
245
245
 
246
246
 
247
+ 10
247
248
  11
248
249
  12
249
- 13
250
- 14</pre>
250
+ 13</pre>
251
251
  </td>
252
252
  <td>
253
- <pre class="code"><span class="info file"># File 'lib/ruff/effect.rb', line 11</span>
253
+ <pre class="code"><span class="info file"># File 'lib/ruff/effect.rb', line 10</span>
254
254
 
255
255
  <span class='kw'>def</span> <span class='id identifier rubyid_initialize'>initialize</span>
256
256
  <span class='ivar'>@id</span> <span class='op'>=</span> <span class='const'>SecureRandom</span><span class='period'>.</span><span class='id identifier rubyid_uuid'>uuid</span>
@@ -293,12 +293,12 @@
293
293
  <pre class="lines">
294
294
 
295
295
 
296
+ 4
296
297
  5
297
- 6
298
- 7</pre>
298
+ 6</pre>
299
299
  </td>
300
300
  <td>
301
- <pre class="code"><span class="info file"># File 'lib/ruff/effect.rb', line 5</span>
301
+ <pre class="code"><span class="info file"># File 'lib/ruff/effect.rb', line 4</span>
302
302
 
303
303
  <span class='kw'>def</span> <span class='id identifier rubyid_id'>id</span>
304
304
  <span class='ivar'>@id</span>
@@ -384,15 +384,15 @@
384
384
  <pre class="lines">
385
385
 
386
386
 
387
+ 20
387
388
  21
388
- 22
389
- 23</pre>
389
+ 22</pre>
390
390
  </td>
391
391
  <td>
392
- <pre class="code"><span class="info file"># File 'lib/ruff/effect.rb', line 21</span>
392
+ <pre class="code"><span class="info file"># File 'lib/ruff/effect.rb', line 20</span>
393
393
 
394
394
  <span class='kw'>def</span> <span class='id identifier rubyid_perform'>perform</span><span class='lparen'>(</span><span class='op'>*</span><span class='id identifier rubyid_a'>a</span><span class='rparen'>)</span>
395
- <span class='kw'>return</span> <span class='const'>Fiber</span><span class='period'>.</span><span class='id identifier rubyid_yield'>yield</span> <span class='const'><span class='object_link'><a href="Throws.html" title="Ruff::Throws (module)">Throws</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="Throws/Eff.html" title="Ruff::Throws::Eff (class)">Eff</a></span></span><span class='period'>.</span><span class='id identifier rubyid_new'><span class='object_link'><a href="Throws/Eff.html#initialize-instance_method" title="Ruff::Throws::Eff#initialize (method)">new</a></span></span><span class='lparen'>(</span><span class='ivar'>@id</span><span class='comma'>,</span> <span class='id identifier rubyid_a'>a</span><span class='rparen'>)</span>
395
+ <span class='kw'>return</span> <span class='const'>Fiber</span><span class='period'>.</span><span class='id identifier rubyid_yield'>yield</span> <span class='const'><span class='object_link'><a href="../Ruff.html" title="Ruff (module)">Ruff</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="Throws.html" title="Ruff::Throws (module)">Throws</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="Throws/Eff.html" title="Ruff::Throws::Eff (class)">Eff</a></span></span><span class='period'>.</span><span class='id identifier rubyid_new'><span class='object_link'><a href="Throws/Eff.html#initialize-instance_method" title="Ruff::Throws::Eff#initialize (method)">new</a></span></span><span class='lparen'>(</span><span class='ivar'>@id</span><span class='comma'>,</span> <span class='id identifier rubyid_a'>a</span><span class='rparen'>)</span>
396
396
  <span class='kw'>end</span></pre>
397
397
  </td>
398
398
  </tr>
@@ -404,9 +404,9 @@
404
404
  </div>
405
405
 
406
406
  <div id="footer">
407
- Generated on Wed Aug 14 22:29:58 2019 by
407
+ Generated on Wed Oct 2 22:42:03 2019 by
408
408
  <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
409
- 0.9.20 (ruby-2.6.3).
409
+ 0.9.20 (ruby-2.6.4).
410
410
  </div>
411
411
 
412
412
  </div>
@@ -6,7 +6,7 @@
6
6
  <title>
7
7
  Class: Ruff::Handler
8
8
 
9
- &mdash; Ruff 0.0.4 Documentation
9
+ &mdash; Ruff 0.0.6 Documentation
10
10
 
11
11
  </title>
12
12
 
@@ -87,6 +87,11 @@
87
87
 
88
88
 
89
89
 
90
+ <dl>
91
+ <dt>Includes:</dt>
92
+ <dd><span class='object_link'><a href="Throws.html" title="Ruff::Throws (module)">Throws</a></span></dd>
93
+ </dl>
94
+
90
95
 
91
96
 
92
97
 
@@ -99,17 +104,7 @@
99
104
 
100
105
  </div>
101
106
 
102
- <h2>Overview</h2><div class="docstring">
103
- <div class="discussion">
104
- <p>In algebraic effects, handler is an first-class object.</p>
105
-
106
-
107
- </div>
108
- </div>
109
- <div class="tags">
110
-
111
107
 
112
- </div>
113
108
 
114
109
 
115
110
 
@@ -143,7 +138,7 @@
143
138
 
144
139
 
145
140
 
146
- <span class="summary_desc"><div class='inline'><p>makes a new handler, internally having fresh empty hash.</p>
141
+ <span class="summary_desc"><div class='inline'><p>In algebraic effects, handler is an first-class object.</p>
147
142
  </div></span>
148
143
 
149
144
  </li>
@@ -198,7 +193,13 @@
198
193
  </ul>
199
194
 
200
195
 
201
- <div id="constructor_details" class="method_details_list">
196
+
197
+
198
+
199
+
200
+
201
+
202
+ <div id="constructor_details" class="method_details_list">
202
203
  <h2>Constructor Details</h2>
203
204
 
204
205
  <div class="method_details first">
@@ -212,7 +213,8 @@
212
213
 
213
214
  </h3><div class="docstring">
214
215
  <div class="discussion">
215
- <p>makes a new handler, internally having fresh empty hash.
216
+ <p>In algebraic effects, handler is an first-class object.
217
+ makes a new handler, internally having fresh empty hash.
216
218
  This is a effect-handler store and when handliong it is looked up.</p>
217
219
 
218
220
 
@@ -279,7 +281,7 @@ This is a effect-handler store and when handliong it is looked up.</p>
279
281
  <p class="tag_title">Examples:</p>
280
282
 
281
283
 
282
- <pre class="example code"><code><span class='id identifier rubyid_handler'>handler</span><span class='period'>.</span><span class='id identifier rubyid_on'>on</span><span class='lparen'>(</span><span class='const'>Log</span><span class='rparen'>)</span> <span class='lbrace'>{</span><span class='op'>|</span><span class='id identifier rubyid_msg'>msg</span><span class='comma'>,</span> <span class='id identifier rubyid_k'>k</span><span class='op'>|</span>
284
+ <pre class="example code"><code><span class='id identifier rubyid_handler'>handler</span><span class='period'>.</span><span class='id identifier rubyid_on'>on</span><span class='lparen'>(</span><span class='const'>Log</span><span class='rparen'>)</span> <span class='lbrace'>{</span><span class='op'>|</span><span class='id identifier rubyid_k'>k</span><span class='comma'>,</span> <span class='id identifier rubyid_msg'>msg</span><span class='op'>|</span>
283
285
  <span class='id identifier rubyid_puts'>puts</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>Logger: </span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_msg'>msg</span><span class='embexpr_end'>}</span><span class='tstring_end'>&quot;</span></span>
284
286
  <span class='id identifier rubyid_k'>k</span><span class='lbracket'>[</span><span class='rbracket'>]</span>
285
287
  <span class='rbrace'>}</span></code></pre>
@@ -314,7 +316,7 @@ This is a effect-handler store and when handliong it is looked up.</p>
314
316
 
315
317
  &mdash;
316
318
  <div class='inline'><p>a handler to handle <code>eff</code>;
317
- last argument of <code>&amp;prc</code> is <em>continuation</em>, proc object
319
+ First argument of <code>&amp;prc</code> is <em>continuation</em>, proc object
318
320
  to go back to the handled computation.</p>
319
321
  </div>
320
322
 
@@ -397,7 +399,7 @@ to go back to the handled computation.</p>
397
399
 
398
400
  <pre class="example code"><code><span class='id identifier rubyid_handler'>handler</span><span class='period'>.</span><span class='id identifier rubyid_run'>run</span> <span class='lbrace'>{</span>
399
401
  <span class='const'><span class='object_link'><a href="" title="Ruff::Handler (class)">Handler</a></span></span><span class='period'>.</span><span class='id identifier rubyid_new'><span class='object_link'><a href="#initialize-instance_method" title="Ruff::Handler#initialize (method)">new</a></span></span>
400
- <span class='period'>.</span><span class='id identifier rubyid_on'>on</span><span class='lparen'>(</span><span class='const'>Double</span><span class='rparen'>)</span><span class='lbrace'>{</span><span class='op'>|</span><span class='id identifier rubyid_v'>v</span><span class='comma'>,</span> <span class='id identifier rubyid_k'>k</span><span class='op'>|</span>
402
+ <span class='period'>.</span><span class='id identifier rubyid_on'>on</span><span class='lparen'>(</span><span class='const'>Double</span><span class='rparen'>)</span><span class='lbrace'>{</span><span class='op'>|</span><span class='id identifier rubyid_k'>k</span><span class='comma'>,</span> <span class='id identifier rubyid_v'>v</span><span class='op'>|</span>
401
403
  <span class='id identifier rubyid_k'>k</span><span class='lbracket'>[</span><span class='id identifier rubyid_v'>v</span> <span class='op'>*</span> <span class='id identifier rubyid_v'>v</span><span class='rbracket'>]</span>
402
404
  <span class='rbrace'>}</span><span class='period'>.</span><span class='id identifier rubyid_run'>run</span> <span class='lbrace'>{</span>
403
405
  <span class='id identifier rubyid_v'>v</span> <span class='op'>=</span> <span class='const'>Double</span><span class='period'>.</span><span class='id identifier rubyid_perform'>perform</span> <span class='int'>3</span>
@@ -411,7 +413,7 @@ to go back to the handled computation.</p>
411
413
 
412
414
  <li>
413
415
 
414
- <span class='name'></span>
416
+ <span class='name'>prc</span>
415
417
 
416
418
 
417
419
  <span class='type'>(<tt>Proc&lt;(), T&gt;</tt>)</span>
@@ -504,17 +506,17 @@ to go back to the handled computation.</p>
504
506
  <span class='id identifier rubyid_rehandles'>rehandles</span> <span class='op'>=</span> <span class='kw'>nil</span>
505
507
 
506
508
  <span class='id identifier rubyid_handle'>handle</span> <span class='op'>=</span> <span class='tlambda'>-&gt;</span><span class='lparen'>(</span><span class='id identifier rubyid_r'>r</span><span class='rparen'>)</span> <span class='tlambeg'>{</span>
507
- <span class='kw'>if</span> <span class='id identifier rubyid_r'>r</span><span class='period'>.</span><span class='id identifier rubyid_is_a?'>is_a?</span> <span class='const'><span class='object_link'><a href="Throws.html" title="Ruff::Throws (module)">Throws</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="Throws/Eff.html" title="Ruff::Throws::Eff (class)">Eff</a></span></span>
509
+ <span class='kw'>if</span> <span class='id identifier rubyid_r'>r</span><span class='period'>.</span><span class='id identifier rubyid_is_a?'>is_a?</span> <span class='const'><span class='object_link'><a href="Throws/Eff.html" title="Ruff::Throws::Eff (class)">Eff</a></span></span>
508
510
  <span class='kw'>if</span> <span class='id identifier rubyid_effh'>effh</span> <span class='op'>=</span> <span class='ivar'>@handlers</span><span class='lbracket'>[</span><span class='id identifier rubyid_r'>r</span><span class='period'>.</span><span class='id identifier rubyid_id'>id</span><span class='rbracket'>]</span>
509
511
  <span class='id identifier rubyid_effh'>effh</span><span class='lbracket'>[</span><span class='id identifier rubyid_continue'>continue</span><span class='comma'>,</span> <span class='op'>*</span><span class='id identifier rubyid_r'>r</span><span class='period'>.</span><span class='id identifier rubyid_args'>args</span><span class='rbracket'>]</span>
510
512
  <span class='kw'>else</span>
511
- <span class='const'>Fiber</span><span class='period'>.</span><span class='id identifier rubyid_yield'>yield</span> <span class='lparen'>(</span><span class='const'><span class='object_link'><a href="Throws.html" title="Ruff::Throws (module)">Throws</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="Throws/Resend.html" title="Ruff::Throws::Resend (class)">Resend</a></span></span><span class='period'>.</span><span class='id identifier rubyid_new'><span class='object_link'><a href="Throws/Resend.html#initialize-instance_method" title="Ruff::Throws::Resend#initialize (method)">new</a></span></span> <span class='id identifier rubyid_r'>r</span><span class='comma'>,</span> <span class='id identifier rubyid_continue'>continue</span><span class='rparen'>)</span>
513
+ <span class='const'>Fiber</span><span class='period'>.</span><span class='id identifier rubyid_yield'>yield</span> <span class='lparen'>(</span><span class='const'><span class='object_link'><a href="Throws/Resend.html" title="Ruff::Throws::Resend (class)">Resend</a></span></span><span class='period'>.</span><span class='id identifier rubyid_new'><span class='object_link'><a href="Throws/Resend.html#initialize-instance_method" title="Ruff::Throws::Resend#initialize (method)">new</a></span></span> <span class='id identifier rubyid_r'>r</span><span class='comma'>,</span> <span class='id identifier rubyid_continue'>continue</span><span class='rparen'>)</span>
512
514
  <span class='kw'>end</span>
513
- <span class='kw'>elsif</span> <span class='id identifier rubyid_r'>r</span><span class='period'>.</span><span class='id identifier rubyid_is_a?'>is_a?</span> <span class='const'><span class='object_link'><a href="Throws.html" title="Ruff::Throws (module)">Throws</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="Throws/Resend.html" title="Ruff::Throws::Resend (class)">Resend</a></span></span>
515
+ <span class='kw'>elsif</span> <span class='id identifier rubyid_r'>r</span><span class='period'>.</span><span class='id identifier rubyid_is_a?'>is_a?</span> <span class='const'><span class='object_link'><a href="Throws/Resend.html" title="Ruff::Throws::Resend (class)">Resend</a></span></span>
514
516
  <span class='kw'>if</span> <span class='id identifier rubyid_effh'>effh</span> <span class='op'>=</span> <span class='ivar'>@handlers</span><span class='lbracket'>[</span><span class='id identifier rubyid_r'>r</span><span class='period'>.</span><span class='id identifier rubyid_eff'>eff</span><span class='period'>.</span><span class='id identifier rubyid_id'>id</span><span class='rbracket'>]</span>
515
517
  <span class='id identifier rubyid_effh'>effh</span><span class='lbracket'>[</span><span class='id identifier rubyid_rehandles'>rehandles</span><span class='lbracket'>[</span><span class='id identifier rubyid_r'>r</span><span class='period'>.</span><span class='id identifier rubyid_k'>k</span><span class='rbracket'>]</span><span class='comma'>,</span> <span class='op'>*</span><span class='id identifier rubyid_r'>r</span><span class='period'>.</span><span class='id identifier rubyid_eff'>eff</span><span class='period'>.</span><span class='id identifier rubyid_args'>args</span><span class='rbracket'>]</span>
516
518
  <span class='kw'>else</span>
517
- <span class='const'>Fiber</span><span class='period'>.</span><span class='id identifier rubyid_yield'>yield</span> <span class='lparen'>(</span><span class='const'><span class='object_link'><a href="Throws.html" title="Ruff::Throws (module)">Throws</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="Throws/Resend.html" title="Ruff::Throws::Resend (class)">Resend</a></span></span><span class='period'>.</span><span class='id identifier rubyid_new'><span class='object_link'><a href="Throws/Resend.html#initialize-instance_method" title="Ruff::Throws::Resend#initialize (method)">new</a></span></span> <span class='id identifier rubyid_r'>r</span><span class='comma'>,</span> <span class='id identifier rubyid_rehandles'>rehandles</span><span class='lbracket'>[</span><span class='id identifier rubyid_r'>r</span><span class='period'>.</span><span class='id identifier rubyid_k'>k</span><span class='rbracket'>]</span><span class='rparen'>)</span>
519
+ <span class='const'>Fiber</span><span class='period'>.</span><span class='id identifier rubyid_yield'>yield</span> <span class='lparen'>(</span><span class='const'><span class='object_link'><a href="Throws/Resend.html" title="Ruff::Throws::Resend (class)">Resend</a></span></span><span class='period'>.</span><span class='id identifier rubyid_new'><span class='object_link'><a href="Throws/Resend.html#initialize-instance_method" title="Ruff::Throws::Resend#initialize (method)">new</a></span></span> <span class='id identifier rubyid_r'>r</span><span class='comma'>,</span> <span class='id identifier rubyid_rehandles'>rehandles</span><span class='lbracket'>[</span><span class='id identifier rubyid_r'>r</span><span class='period'>.</span><span class='id identifier rubyid_k'>k</span><span class='rbracket'>]</span><span class='rparen'>)</span>
518
520
  <span class='kw'>end</span>
519
521
  <span class='kw'>else</span>
520
522
  <span class='id identifier rubyid_r'>r</span>
@@ -560,9 +562,9 @@ to go back to the handled computation.</p>
560
562
  </div>
561
563
 
562
564
  <div id="footer">
563
- Generated on Wed Aug 14 22:29:58 2019 by
565
+ Generated on Wed Oct 2 22:42:03 2019 by
564
566
  <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
565
- 0.9.20 (ruby-2.6.3).
567
+ 0.9.20 (ruby-2.6.4).
566
568
  </div>
567
569
 
568
570
  </div>
@@ -6,7 +6,7 @@
6
6
  <title>
7
7
  Module: Ruff::Throws
8
8
 
9
- &mdash; Ruff 0.0.4 Documentation
9
+ &mdash; Ruff 0.0.6 Documentation
10
10
 
11
11
  </title>
12
12
 
@@ -74,13 +74,16 @@
74
74
 
75
75
 
76
76
 
77
+ <dl>
78
+ <dt>Included in:</dt>
79
+ <dd><span class='object_link'><a href="Handler.html" title="Ruff::Handler (class)">Handler</a></span></dd>
80
+ </dl>
81
+
77
82
 
78
83
 
79
84
  <dl>
80
85
  <dt>Defined in:</dt>
81
- <dd>lib/ruff/objects.rb<span class="defines">,<br />
82
- lib/ruff/objects.rb</span>
83
- </dd>
86
+ <dd>lib/ruff/objects.rb</dd>
84
87
  </dl>
85
88
 
86
89
  </div>
@@ -107,9 +110,9 @@
107
110
  </div>
108
111
 
109
112
  <div id="footer">
110
- Generated on Wed Aug 14 22:29:58 2019 by
113
+ Generated on Wed Oct 2 22:42:03 2019 by
111
114
  <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
112
- 0.9.20 (ruby-2.6.3).
115
+ 0.9.20 (ruby-2.6.4).
113
116
  </div>
114
117
 
115
118
  </div>
@@ -6,7 +6,7 @@
6
6
  <title>
7
7
  Class: Ruff::Throws::Eff
8
8
 
9
- &mdash; Ruff 0.0.4 Documentation
9
+ &mdash; Ruff 0.0.6 Documentation
10
10
 
11
11
  </title>
12
12
 
@@ -243,12 +243,12 @@
243
243
  <pre class="lines">
244
244
 
245
245
 
246
+ 14
246
247
  15
247
- 16
248
- 17</pre>
248
+ 16</pre>
249
249
  </td>
250
250
  <td>
251
- <pre class="code"><span class="info file"># File 'lib/ruff/objects.rb', line 15</span>
251
+ <pre class="code"><span class="info file"># File 'lib/ruff/objects.rb', line 14</span>
252
252
 
253
253
  <span class='kw'>def</span> <span class='id identifier rubyid_initialize'>initialize</span><span class='lparen'>(</span><span class='id identifier rubyid_id'>id</span><span class='comma'>,</span> <span class='id identifier rubyid_args'>args</span><span class='rparen'>)</span>
254
254
  <span class='ivar'>@id</span> <span class='op'>=</span> <span class='id identifier rubyid_id'>id</span><span class='semicolon'>;</span> <span class='ivar'>@args</span> <span class='op'>=</span> <span class='id identifier rubyid_args'>args</span>
@@ -290,12 +290,12 @@
290
290
  <pre class="lines">
291
291
 
292
292
 
293
+ 11
293
294
  12
294
- 13
295
- 14</pre>
295
+ 13</pre>
296
296
  </td>
297
297
  <td>
298
- <pre class="code"><span class="info file"># File 'lib/ruff/objects.rb', line 12</span>
298
+ <pre class="code"><span class="info file"># File 'lib/ruff/objects.rb', line 11</span>
299
299
 
300
300
  <span class='kw'>def</span> <span class='id identifier rubyid_args'>args</span>
301
301
  <span class='ivar'>@args</span>
@@ -332,12 +332,12 @@
332
332
  <pre class="lines">
333
333
 
334
334
 
335
+ 8
335
336
  9
336
- 10
337
- 11</pre>
337
+ 10</pre>
338
338
  </td>
339
339
  <td>
340
- <pre class="code"><span class="info file"># File 'lib/ruff/objects.rb', line 9</span>
340
+ <pre class="code"><span class="info file"># File 'lib/ruff/objects.rb', line 8</span>
341
341
 
342
342
  <span class='kw'>def</span> <span class='id identifier rubyid_id'>id</span>
343
343
  <span class='ivar'>@id</span>
@@ -353,9 +353,9 @@
353
353
  </div>
354
354
 
355
355
  <div id="footer">
356
- Generated on Wed Aug 14 22:29:59 2019 by
356
+ Generated on Wed Oct 2 22:42:03 2019 by
357
357
  <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
358
- 0.9.20 (ruby-2.6.3).
358
+ 0.9.20 (ruby-2.6.4).
359
359
  </div>
360
360
 
361
361
  </div>
@@ -6,7 +6,7 @@
6
6
  <title>
7
7
  Class: Ruff::Throws::Resend
8
8
 
9
- &mdash; Ruff 0.0.4 Documentation
9
+ &mdash; Ruff 0.0.6 Documentation
10
10
 
11
11
  </title>
12
12
 
@@ -243,12 +243,12 @@
243
243
  <pre class="lines">
244
244
 
245
245
 
246
- 34
247
- 35
248
- 36</pre>
246
+ 30
247
+ 31
248
+ 32</pre>
249
249
  </td>
250
250
  <td>
251
- <pre class="code"><span class="info file"># File 'lib/ruff/objects.rb', line 34</span>
251
+ <pre class="code"><span class="info file"># File 'lib/ruff/objects.rb', line 30</span>
252
252
 
253
253
  <span class='kw'>def</span> <span class='id identifier rubyid_initialize'>initialize</span><span class='lparen'>(</span><span class='id identifier rubyid_eff'>eff</span><span class='comma'>,</span> <span class='id identifier rubyid_k'>k</span><span class='rparen'>)</span>
254
254
  <span class='ivar'>@eff</span> <span class='op'>=</span> <span class='id identifier rubyid_eff'>eff</span><span class='semicolon'>;</span> <span class='ivar'>@k</span> <span class='op'>=</span> <span class='id identifier rubyid_k'>k</span>
@@ -290,12 +290,12 @@
290
290
  <pre class="lines">
291
291
 
292
292
 
293
- 28
294
- 29
295
- 30</pre>
293
+ 24
294
+ 25
295
+ 26</pre>
296
296
  </td>
297
297
  <td>
298
- <pre class="code"><span class="info file"># File 'lib/ruff/objects.rb', line 28</span>
298
+ <pre class="code"><span class="info file"># File 'lib/ruff/objects.rb', line 24</span>
299
299
 
300
300
  <span class='kw'>def</span> <span class='id identifier rubyid_eff'>eff</span>
301
301
  <span class='ivar'>@eff</span>
@@ -332,12 +332,12 @@
332
332
  <pre class="lines">
333
333
 
334
334
 
335
- 31
336
- 32
337
- 33</pre>
335
+ 27
336
+ 28
337
+ 29</pre>
338
338
  </td>
339
339
  <td>
340
- <pre class="code"><span class="info file"># File 'lib/ruff/objects.rb', line 31</span>
340
+ <pre class="code"><span class="info file"># File 'lib/ruff/objects.rb', line 27</span>
341
341
 
342
342
  <span class='kw'>def</span> <span class='id identifier rubyid_k'>k</span>
343
343
  <span class='ivar'>@k</span>
@@ -353,9 +353,9 @@
353
353
  </div>
354
354
 
355
355
  <div id="footer">
356
- Generated on Wed Aug 14 22:29:59 2019 by
356
+ Generated on Wed Oct 2 22:42:03 2019 by
357
357
  <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
358
- 0.9.20 (ruby-2.6.3).
358
+ 0.9.20 (ruby-2.6.4).
359
359
  </div>
360
360
 
361
361
  </div>
@@ -4,7 +4,7 @@
4
4
  <meta charset="utf-8">
5
5
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
6
  <title>
7
- Ruff 0.0.4 Documentation
7
+ Ruff 0.0.6 Documentation
8
8
 
9
9
  </title>
10
10
 
@@ -52,7 +52,7 @@
52
52
  <div class="clear"></div>
53
53
  </div>
54
54
 
55
- <div id="content"><h1 class="noborder title">Ruff 0.0.4 Documentation</h1>
55
+ <div id="content"><h1 class="noborder title">Ruff 0.0.6 Documentation</h1>
56
56
  <div id="listing">
57
57
  <h1 class="alphaindex">Alphabetic Index</h1>
58
58
 
@@ -156,9 +156,9 @@
156
156
  </div>
157
157
 
158
158
  <div id="footer">
159
- Generated on Wed Aug 14 22:29:58 2019 by
159
+ Generated on Wed Oct 2 22:42:03 2019 by
160
160
  <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
161
- 0.9.20 (ruby-2.6.3).
161
+ 0.9.20 (ruby-2.6.4).
162
162
  </div>
163
163
 
164
164
  </div>
@@ -6,7 +6,7 @@
6
6
  <title>
7
7
  File: README
8
8
 
9
- &mdash; Ruff 0.0.4 Documentation
9
+ &mdash; Ruff 0.0.6 Documentation
10
10
 
11
11
  </title>
12
12
 
@@ -87,12 +87,20 @@
87
87
  </span><span class='comment'># 9
88
88
  </span><span class='comment'># logger: 6
89
89
  </span></code></pre>
90
+
91
+ <h1>Documentation</h1>
92
+
93
+ <p>See <a href="https://nymphium.github.io/ruff/">here</a>.</p>
94
+
95
+ <h1>LICENSE</h1>
96
+
97
+ <p>MIT</p>
90
98
  </div></div>
91
99
 
92
100
  <div id="footer">
93
- Generated on Wed Aug 14 22:29:58 2019 by
101
+ Generated on Wed Oct 2 22:42:03 2019 by
94
102
  <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
95
- 0.9.20 (ruby-2.6.3).
103
+ 0.9.20 (ruby-2.6.4).
96
104
  </div>
97
105
 
98
106
  </div>
@@ -2,7 +2,7 @@
2
2
  <html>
3
3
  <head>
4
4
  <meta charset="utf-8">
5
- <title>Ruff 0.0.4 Documentation</title>
5
+ <title>Ruff 0.0.6 Documentation</title>
6
6
  </head>
7
7
  <script type="text/javascript" charset="utf-8">
8
8
  var match = unescape(window.location.hash).match(/^#!(.+)/);
@@ -6,7 +6,7 @@
6
6
  <title>
7
7
  File: README
8
8
 
9
- &mdash; Ruff 0.0.4 Documentation
9
+ &mdash; Ruff 0.0.6 Documentation
10
10
 
11
11
  </title>
12
12
 
@@ -87,12 +87,20 @@
87
87
  </span><span class='comment'># 9
88
88
  </span><span class='comment'># logger: 6
89
89
  </span></code></pre>
90
+
91
+ <h1>Documentation</h1>
92
+
93
+ <p>See <a href="https://nymphium.github.io/ruff/">here</a>.</p>
94
+
95
+ <h1>LICENSE</h1>
96
+
97
+ <p>MIT</p>
90
98
  </div></div>
91
99
 
92
100
  <div id="footer">
93
- Generated on Wed Aug 14 22:29:58 2019 by
101
+ Generated on Wed Oct 2 22:42:03 2019 by
94
102
  <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
95
- 0.9.20 (ruby-2.6.3).
103
+ 0.9.20 (ruby-2.6.4).
96
104
  </div>
97
105
 
98
106
  </div>
@@ -6,7 +6,7 @@
6
6
  <title>
7
7
  Top Level Namespace
8
8
 
9
- &mdash; Ruff 0.0.4 Documentation
9
+ &mdash; Ruff 0.0.6 Documentation
10
10
 
11
11
  </title>
12
12
 
@@ -100,9 +100,9 @@
100
100
  </div>
101
101
 
102
102
  <div id="footer">
103
- Generated on Wed Aug 14 22:29:58 2019 by
103
+ Generated on Wed Oct 2 22:42:03 2019 by
104
104
  <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
105
- 0.9.20 (ruby-2.6.3).
105
+ 0.9.20 (ruby-2.6.4).
106
106
  </div>
107
107
 
108
108
  </div>
@@ -1,25 +1,23 @@
1
- module Ruff
2
- # This class provides an effect instance.
3
- class Effect
4
- # Each instance must be unique so they have unique id with UUID
5
- attr_reader :id
1
+ # This class provides an effect instance.
2
+ class Ruff::Effect
3
+ # Each instance must be unique so they have unique id with UUID
4
+ attr_reader :id
6
5
 
7
- # instaciates an effect setting `id`.
8
- # @return [Effect<Arg, Ret>]
9
- # @example
10
- # Log = Effect.new #==> it _might_ be Effect<string, nil>
11
- def initialize
12
- @id = SecureRandom.uuid
13
- @id.freeze
14
- end
6
+ # instaciates an effect setting `id`.
7
+ # @return [Effect<Arg, Ret>]
8
+ # @example
9
+ # Log = Effect.new #==> it _might_ be Effect<string, nil>
10
+ def initialize
11
+ @id = SecureRandom.uuid
12
+ @id.freeze
13
+ end
15
14
 
16
- # sends an effect ID and its arguments to a nearmost handler.
17
- # @param [Arg] a of the object `Effect<Arg, Ret>`
18
- # @return [Ret] of the object `Effect<Arg, Ret>`
19
- # @example
20
- # Log.perform "hello"
21
- def perform(*a)
22
- return Fiber.yield Throws::Eff.new(@id, a)
23
- end
15
+ # sends an effect ID and its arguments to a nearmost handler.
16
+ # @param [Arg] a of the object `Effect<Arg, Ret>`
17
+ # @return [Ret] of the object `Effect<Arg, Ret>`
18
+ # @example
19
+ # Log.perform "hello"
20
+ def perform(*a)
21
+ return Fiber.yield Ruff::Throws::Eff.new(@id, a)
24
22
  end
25
23
  end
@@ -1,106 +1,105 @@
1
- module Ruff
1
+ class Ruff::Handler
2
+ include Ruff::Throws
2
3
  # In algebraic effects, handler is an first-class object.
3
- class Handler
4
- # makes a new handler, internally having fresh empty hash.
5
- # This is a effect-handler store and when handliong it is looked up.
6
- # @example
7
- # handler = Handler.new
8
- def initialize
9
- @handlers = Hash.new
10
- end
4
+ # makes a new handler, internally having fresh empty hash.
5
+ # This is a effect-handler store and when handliong it is looked up.
6
+ # @example
7
+ # handler = Handler.new
8
+ def initialize
9
+ @handlers = Hash.new
10
+ end
11
11
 
12
- # sets effec handler `&prc` for `eff`
13
- #
14
- # @param [Effect<Arg, Ret>] eff
15
- # the effect instance to be handled
16
- # @param [Proc<Arg, Ret => A>] prc
17
- # a handler to handle `eff`;
18
- # last argument of `&prc` is *continuation*, proc object
19
- # to go back to the handled computation.
20
- # @return [Handler{Effect<Arg, Ret>, e}] itself updated with handling `Effect<Arg, Ret>`
21
- #
22
- # @example
23
- # handler.on(Log) {|msg, k|
24
- # puts "Logger: #{msg}"
25
- # k[]
26
- # }
27
- def on(eff, &prc)
28
- @handlers[eff.id] = prc
12
+ # sets effec handler `&prc` for `eff`
13
+ #
14
+ # @param [Effect<Arg, Ret>] eff
15
+ # the effect instance to be handled
16
+ # @param [Proc<Arg, Ret => A>] prc
17
+ # a handler to handle `eff`;
18
+ # First argument of `&prc` is *continuation*, proc object
19
+ # to go back to the handled computation.
20
+ # @return [Handler{Effect<Arg, Ret>, e}] itself updated with handling `Effect<Arg, Ret>`
21
+ #
22
+ # @example
23
+ # handler.on(Log) {|k, msg|
24
+ # puts "Logger: #{msg}"
25
+ # k[]
26
+ # }
27
+ def on(eff, &prc)
28
+ @handlers[eff.id] = prc
29
29
 
30
- self
31
- end
30
+ self
31
+ end
32
32
 
33
- # @param [Proc<(), T>]
34
- # @return [T]
35
- #
36
- # handles the computation.
37
- #
38
- # @example
39
- # handler.run {
40
- # Log.perform "hello"
41
- # }
42
- #
43
- # @example `handler` can be layered.
44
- # handler.run {
45
- # Handler.new
46
- # .on(Double){|v, k|
47
- # k[v * v]
48
- # }.run {
49
- # v = Double.perform 3
50
- # Log.perform 3
51
- # }
52
- # }
53
- def run(&prc)
54
- co = Fiber.new &prc
55
- continue = nil
56
- rehandles = nil
33
+ # @param [Proc<(), T>] prc
34
+ # @return [T]
35
+ #
36
+ # handles the computation.
37
+ #
38
+ # @example
39
+ # handler.run {
40
+ # Log.perform "hello"
41
+ # }
42
+ #
43
+ # @example `handler` can be layered.
44
+ # handler.run {
45
+ # Handler.new
46
+ # .on(Double){|k, v|
47
+ # k[v * v]
48
+ # }.run {
49
+ # v = Double.perform 3
50
+ # Log.perform 3
51
+ # }
52
+ # }
53
+ def run(&prc)
54
+ co = Fiber.new &prc
55
+ continue = nil
56
+ rehandles = nil
57
57
 
58
- handle = ->(r) {
59
- if r.is_a? Throws::Eff
60
- if effh = @handlers[r.id]
61
- effh[continue, *r.args]
62
- else
63
- Fiber.yield (Throws::Resend.new r, continue)
64
- end
65
- elsif r.is_a? Throws::Resend
66
- if effh = @handlers[r.eff.id]
67
- effh[rehandles[r.k], *r.eff.args]
68
- else
69
- Fiber.yield (Throws::Resend.new r, rehandles[r.k])
70
- end
58
+ handle = ->(r) {
59
+ if r.is_a? Eff
60
+ if effh = @handlers[r.id]
61
+ effh[continue, *r.args]
71
62
  else
72
- r
63
+ Fiber.yield (Resend.new r, continue)
73
64
  end
74
- }
75
-
76
- rehandles = ->(k){
77
- newh = self.class.new
78
- def newh.add_handler id, h
79
- @handlers[id] = h
65
+ elsif r.is_a? Resend
66
+ if effh = @handlers[r.eff.id]
67
+ effh[rehandles[r.k], *r.eff.args]
68
+ else
69
+ Fiber.yield (Resend.new r, rehandles[r.k])
80
70
  end
71
+ else
72
+ r
73
+ end
74
+ }
81
75
 
82
- @handlers.each{|id, h|
83
- newh.add_handler id, h
84
- }
76
+ rehandles = ->(k){
77
+ newh = self.class.new
78
+ def newh.add_handler id, h
79
+ @handlers[id] = h
80
+ end
85
81
 
86
- class << newh
87
- undef add_handler
88
- end
89
-
90
- ->(*args) {
91
- continue[
92
- newh.run {
93
- k[*args]
94
- }
95
- ]
96
- }
82
+ @handlers.each{|id, h|
83
+ newh.add_handler id, h
97
84
  }
98
85
 
99
- continue = ->(*arg) {
100
- handle[co.resume(*arg)]
86
+ class << newh
87
+ undef add_handler
88
+ end
89
+
90
+ ->(*args) {
91
+ continue[
92
+ newh.run {
93
+ k[*args]
94
+ }
95
+ ]
101
96
  }
97
+ }
98
+
99
+ continue = ->(*arg) {
100
+ handle[co.resume(*arg)]
101
+ }
102
102
 
103
- continue[nil]
104
- end
103
+ continue[nil]
105
104
  end
106
105
  end
@@ -1,39 +1,33 @@
1
- module Ruff
2
- module Throws
3
- # `Eff` is internal object.
4
- #
5
- # They make effects encapsulate with ID and arguments to be sent to the handler.
6
- class Eff
1
+ module Ruff::Throws end
7
2
 
8
- # makes the object unique.
9
- attr_reader :id
3
+ # `Eff` is internal object.
4
+ #
5
+ # They make effects encapsulate with ID and arguments to be sent to the handler.
6
+ class Ruff::Throws::Eff
7
+ # makes the object unique.
8
+ attr_reader :id
10
9
 
11
- # passes to a handler which can catch the effect.
12
- attr_reader :args
10
+ # passes to a handler which can catch the effect.
11
+ attr_reader :args
13
12
 
14
- # creates a new object with `id` and `args`.
15
- def initialize(id, args)
16
- @id = id; @args = args
17
- end
18
- end
13
+ # creates a new object with `id` and `args`.
14
+ def initialize(id, args)
15
+ @id = id; @args = args
19
16
  end
17
+ end
20
18
 
21
- module Throws
22
- # `Resend` is internal object like `Eff`.
23
- #
24
- # It is used when an effect is unable to be handled and should be thrown to the outer handler.
25
- class Resend
26
-
27
- #is abstracted effect (such as `Eff` or (re)thrown `Resend`).
28
- attr_reader :eff
19
+ # `Resend` is internal object like `Eff`.
20
+ #
21
+ # It is used when an effect is unable to be handled and should be thrown to the outer handler.
22
+ class Ruff::Throws::Resend
23
+ #is abstracted effect (such as `Eff` or (re)thrown `Resend`).
24
+ attr_reader :eff
29
25
 
30
- # is a continuation of `eff` thrown context.
31
- attr_reader :k
26
+ # is a continuation of `eff` thrown context.
27
+ attr_reader :k
32
28
 
33
- # creates a new object with `eff` and `k`.
34
- def initialize(eff, k)
35
- @eff = eff; @k = k
36
- end
37
- end
29
+ # creates a new object with `eff` and `k`.
30
+ def initialize(eff, k)
31
+ @eff = eff; @k = k
38
32
  end
39
33
  end
@@ -1,3 +1,3 @@
1
1
  module Ruff
2
- VERSION = "0.0.5"
2
+ VERSION = "0.0.6"
3
3
  end
data/version.h CHANGED
@@ -1 +1 @@
1
- #define RUFF_VERSION "0.0.5"
1
+ #define RUFF_VERSION "0.0.6"
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ruff
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.5
4
+ version: 0.0.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - nymphium
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-08-14 00:00:00.000000000 Z
11
+ date: 2019-10-02 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -99,7 +99,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
99
99
  - !ruby/object:Gem::Version
100
100
  version: '0'
101
101
  requirements: []
102
- rubygems_version: 3.0.4
102
+ rubygems_version: 3.0.6
103
103
  signing_key:
104
104
  specification_version: 4
105
105
  summary: ONE-SHOT Algebraic Effects for Ruby!