mangrove 0.15.0 → 0.15.1

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: 27f3199cc234c62d6d3905e82878a1a1256d4d3d6274b0ad72ed5ebecfa52ef1
4
- data.tar.gz: 927b3c1de75c99ad29dd12f91e4c04df420c4786f24966900ef98e426efbd330
3
+ metadata.gz: 3d6d0e9800db396996eecc375574354d42930e986cee4bf4c1c7e2b424f05213
4
+ data.tar.gz: 64636fcd0b17e65102706310968c1a268bae66d37e666c1522bf5788f57b8f17
5
5
  SHA512:
6
- metadata.gz: 83476cb1be593db8e67f1b121944be82c4637371a7940e85cece9d86cff3532578dcf58c4fdc167dada7a3181fc32254100dfa2865c6479c15b46bd1a2ae1c39
7
- data.tar.gz: 1c85b816e4f4b9921e84521ee5348d4fc97bf5859c451e0d94812061861cb7b89caab303674e58cd9869c89aaaa70cd01139e06b09353eaa7ec0e48d312e2d08
6
+ metadata.gz: c940d7d70b04ff5936bb36487d344cc7f49edc383aeae0d284d75f3b082f3a0e8e3344f59c2d0fa1092671e893f198daf4840813746927a1486a9a81eca0e3c3
7
+ data.tar.gz: c46998c7434f0b679a59e2e407da4068a35642ea3d966184791d401f75f23be1e20fa85405e09e9e986b577771345045bbdc0c23e64aa8da18cf46c9dfd319a7
data/README.md CHANGED
@@ -1,10 +1,8 @@
1
1
  # Mangrove
2
2
  Mangrove provides type utility to use with Sorbet.
3
+ use `rubocop-mangrove` to statically check rescuing ControlSignal is done
3
4
 
4
5
  You can do something like this with the gem.
5
-
6
- use `rubocop-mangrove`` to statically check rescuing ControlSignal is done
7
-
8
6
  ```ruby
9
7
  class TransposeExample
10
8
  extend T::Sig
@@ -27,6 +25,79 @@ end
27
25
 
28
26
  expect(TransposeExample.new.divide_arguments_by_3([3, 4, 5])).to eq Mangrove::Result::Err.new(["number 4 is not divisible by 3", "number 5 is not divisible by 3"])
29
27
  expect(TransposeExample.new.divide_arguments_by_3([3, 6, 9])).to eq Mangrove::Result::Ok.new([1, 2, 3])
28
+
29
+ ```
30
+
31
+ or like this.
32
+ ```ruby
33
+ class MyController
34
+ extend T::Sig
35
+
36
+ sig { params(input: String).returns(String) }
37
+ def create(input)
38
+ result = MyService.new.execute(input)
39
+
40
+ case result
41
+ when Mangrove::Result::Ok
42
+ result.ok_inner
43
+ when Mangrove::Result::Err
44
+ error = result.err_inner
45
+
46
+ case error
47
+ when MyService::MyServiceError::E1
48
+ "e1: #{error.inner.msg}"
49
+ when MyService::MyServiceError::E2
50
+ "e2: #{error.inner.msg}"
51
+ when MyService::MyServiceError::Other
52
+ "other: #{error.inner.msg}"
53
+ else T.absurd(error)
54
+ end
55
+ end
56
+ end
57
+ end
58
+
59
+ class MyService
60
+ extend T::Sig
61
+ extend T::Generic
62
+
63
+ include Kernel
64
+
65
+ E = type_member { { upper: MyServiceError } }
66
+
67
+ sig { params(input: String).returns(Mangrove::Result[String, MyServiceError]) }
68
+ def execute(input)
69
+ input
70
+ .safe_to_i
71
+ .map_err_wt(MyServiceError::Other) { |e|
72
+ MyServiceError::Other.new(MyAppError::Other.new(e))
73
+ }.and_then_wt(String) { |num|
74
+ if num < 1
75
+ Mangrove::Result.err(String, MyServiceError::E1.new(MyAppError::E1.new("num < 1")))
76
+ elsif num < 3
77
+ Mangrove::Result
78
+ .ok(num, String)
79
+ .and_then_wt(String) { |n|
80
+ if n < 2
81
+ Mangrove::Result.ok("`#{n}` < 2", String)
82
+ else
83
+ Mangrove::Result.err(String, "not `#{n}` < 2")
84
+ end
85
+ }
86
+ .map_err_wt(MyServiceError::E1) { |e|
87
+ MyServiceError::E1.new(MyAppError::E1.new("mapping to E1 #{e}"))
88
+ }
89
+ .map_ok { |str|
90
+ {
91
+ my_key: str
92
+ }
93
+ }
94
+ .map_ok(&:to_s)
95
+ else
96
+ Mangrove::Result.err(String, MyServiceError::E2.new(MyAppError::E2.new))
97
+ end
98
+ }
99
+ end
100
+ end
30
101
  ```
31
102
 
32
103
  Other examples are available at [`spec/**/**_spec.rb`](https://github.com/kazzix14/mangrove/tree/main/spec).
@@ -48,7 +119,7 @@ bundle add mangrove
48
119
 
49
120
  ## Usage
50
121
 
51
- Documentation is available [here](https://kazzix14.github.io/mangrove/).
122
+ [Documentation is available here](https://kazzix14.github.io/mangrove/).
52
123
  For more concrete examples, see [`spec/**/**_spec.rb`](https://github.com/kazzix14/mangrove/tree/main/spec).
53
124
 
54
125
  ```ruby
@@ -69,7 +140,7 @@ my_none = Option::None.new
69
140
  include Mangrove::ControlFlow::Handler
70
141
  ```
71
142
 
72
- ## Commands
143
+ ## Commands for Development
73
144
  ```
74
145
  git config core.hooksPath hooks
75
146
  bundle exec tapioca init
@@ -213,7 +213,7 @@
213
213
  </div>
214
214
 
215
215
  <div id="footer">
216
- Generated on Tue Oct 31 12:03:29 2023 by
216
+ Generated on Tue Oct 31 12:15:12 2023 by
217
217
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
218
218
  0.9.34 (ruby-3.2.2).
219
219
  </div>
@@ -105,7 +105,7 @@
105
105
  </div>
106
106
 
107
107
  <div id="footer">
108
- Generated on Tue Oct 31 12:03:29 2023 by
108
+ Generated on Tue Oct 31 12:15:12 2023 by
109
109
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
110
110
  0.9.34 (ruby-3.2.2).
111
111
  </div>
@@ -424,7 +424,7 @@
424
424
  </div>
425
425
 
426
426
  <div id="footer">
427
- Generated on Tue Oct 31 12:03:31 2023 by
427
+ Generated on Tue Oct 31 12:15:14 2023 by
428
428
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
429
429
  0.9.34 (ruby-3.2.2).
430
430
  </div>
@@ -1075,7 +1075,7 @@
1075
1075
  </div>
1076
1076
 
1077
1077
  <div id="footer">
1078
- Generated on Tue Oct 31 12:03:30 2023 by
1078
+ Generated on Tue Oct 31 12:15:13 2023 by
1079
1079
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
1080
1080
  0.9.34 (ruby-3.2.2).
1081
1081
  </div>
@@ -1192,7 +1192,7 @@
1192
1192
  </div>
1193
1193
 
1194
1194
  <div id="footer">
1195
- Generated on Tue Oct 31 12:03:29 2023 by
1195
+ Generated on Tue Oct 31 12:15:13 2023 by
1196
1196
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
1197
1197
  0.9.34 (ruby-3.2.2).
1198
1198
  </div>
@@ -1135,7 +1135,7 @@
1135
1135
  </div>
1136
1136
 
1137
1137
  <div id="footer">
1138
- Generated on Tue Oct 31 12:03:29 2023 by
1138
+ Generated on Tue Oct 31 12:15:12 2023 by
1139
1139
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
1140
1140
  0.9.34 (ruby-3.2.2).
1141
1141
  </div>
@@ -424,7 +424,7 @@
424
424
  </div>
425
425
 
426
426
  <div id="footer">
427
- Generated on Tue Oct 31 12:03:31 2023 by
427
+ Generated on Tue Oct 31 12:15:14 2023 by
428
428
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
429
429
  0.9.34 (ruby-3.2.2).
430
430
  </div>
@@ -2079,7 +2079,7 @@
2079
2079
  </div>
2080
2080
 
2081
2081
  <div id="footer">
2082
- Generated on Tue Oct 31 12:03:31 2023 by
2082
+ Generated on Tue Oct 31 12:15:14 2023 by
2083
2083
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
2084
2084
  0.9.34 (ruby-3.2.2).
2085
2085
  </div>
@@ -2044,7 +2044,7 @@
2044
2044
  </div>
2045
2045
 
2046
2046
  <div id="footer">
2047
- Generated on Tue Oct 31 12:03:30 2023 by
2047
+ Generated on Tue Oct 31 12:15:13 2023 by
2048
2048
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
2049
2049
  0.9.34 (ruby-3.2.2).
2050
2050
  </div>
@@ -2124,7 +2124,7 @@
2124
2124
  </div>
2125
2125
 
2126
2126
  <div id="footer">
2127
- Generated on Tue Oct 31 12:03:29 2023 by
2127
+ Generated on Tue Oct 31 12:15:12 2023 by
2128
2128
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
2129
2129
  0.9.34 (ruby-3.2.2).
2130
2130
  </div>
data/docs/Mangrove.html CHANGED
@@ -118,7 +118,7 @@
118
118
  <dt id="VERSION-constant" class="">VERSION =
119
119
 
120
120
  </dt>
121
- <dd><pre class="code"><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>0.15.0</span><span class='tstring_end'>&quot;</span></span></pre></dd>
121
+ <dd><pre class="code"><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>0.15.1</span><span class='tstring_end'>&quot;</span></span></pre></dd>
122
122
 
123
123
  </dl>
124
124
 
@@ -134,7 +134,7 @@
134
134
  </div>
135
135
 
136
136
  <div id="footer">
137
- Generated on Tue Oct 31 12:03:29 2023 by
137
+ Generated on Tue Oct 31 12:15:12 2023 by
138
138
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
139
139
  0.9.34 (ruby-3.2.2).
140
140
  </div>
data/docs/_index.html CHANGED
@@ -215,7 +215,7 @@
215
215
  </div>
216
216
 
217
217
  <div id="footer">
218
- Generated on Tue Oct 31 12:03:29 2023 by
218
+ Generated on Tue Oct 31 12:15:12 2023 by
219
219
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
220
220
  0.9.34 (ruby-3.2.2).
221
221
  </div>
@@ -60,12 +60,10 @@
60
60
  <div id="content"><div id='filecontents'>
61
61
  <h1 id="label-Mangrove">Mangrove</h1>
62
62
 
63
- <p>Mangrove provides type utility to use with Sorbet.</p>
63
+ <p>Mangrove provides type utility to use with Sorbet. use <code>rubocop-mangrove</code> to statically check rescuing ControlSignal is done</p>
64
64
 
65
65
  <p>You can do something like this with the gem.</p>
66
66
 
67
- <p>use ‘rubocop-mangrove“ to statically check rescuing ControlSignal is done</p>
68
-
69
67
  <pre class="code ruby"><code class="ruby"><span class='kw'>class</span> <span class='const'>TransposeExample</span>
70
68
  <span class='id identifier rubyid_extend'>extend</span> <span class='const'>T</span><span class='op'>::</span><span class='const'>Sig</span>
71
69
 
@@ -89,6 +87,78 @@
89
87
  <span class='id identifier rubyid_expect'>expect</span><span class='lparen'>(</span><span class='const'>TransposeExample</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='period'>.</span><span class='id identifier rubyid_divide_arguments_by_3'>divide_arguments_by_3</span><span class='lparen'>(</span><span class='lbracket'>[</span><span class='int'>3</span><span class='comma'>,</span> <span class='int'>6</span><span class='comma'>,</span> <span class='int'>9</span><span class='rbracket'>]</span><span class='rparen'>)</span><span class='rparen'>)</span><span class='period'>.</span><span class='id identifier rubyid_to'>to</span> <span class='id identifier rubyid_eq'>eq</span> <span class='const'><span class='object_link'><a href="Mangrove.html" title="Mangrove (module)">Mangrove</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="Mangrove/Result.html" title="Mangrove::Result (module)">Result</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="Mangrove/Result/Ok.html" title="Mangrove::Result::Ok (class)">Ok</a></span></span><span class='period'>.</span><span class='id identifier rubyid_new'><span class='object_link'><a href="Mangrove/Result/Ok.html#initialize-instance_method" title="Mangrove::Result::Ok#initialize (method)">new</a></span></span><span class='lparen'>(</span><span class='lbracket'>[</span><span class='int'>1</span><span class='comma'>,</span> <span class='int'>2</span><span class='comma'>,</span> <span class='int'>3</span><span class='rbracket'>]</span><span class='rparen'>)</span>
90
88
  </code></pre>
91
89
 
90
+ <p>or like this.</p>
91
+
92
+ <pre class="code ruby"><code class="ruby"><span class='kw'>class</span> <span class='const'>MyController</span>
93
+ <span class='id identifier rubyid_extend'>extend</span> <span class='const'>T</span><span class='op'>::</span><span class='const'>Sig</span>
94
+
95
+ <span class='id identifier rubyid_sig'>sig</span> <span class='lbrace'>{</span> <span class='id identifier rubyid_params'>params</span><span class='lparen'>(</span><span class='label'>input:</span> <span class='const'>String</span><span class='rparen'>)</span><span class='period'>.</span><span class='id identifier rubyid_returns'>returns</span><span class='lparen'>(</span><span class='const'>String</span><span class='rparen'>)</span> <span class='rbrace'>}</span>
96
+ <span class='kw'>def</span> <span class='id identifier rubyid_create'>create</span><span class='lparen'>(</span><span class='id identifier rubyid_input'>input</span><span class='rparen'>)</span>
97
+ <span class='id identifier rubyid_result'>result</span> <span class='op'>=</span> <span class='const'>MyService</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='period'>.</span><span class='id identifier rubyid_execute'>execute</span><span class='lparen'>(</span><span class='id identifier rubyid_input'>input</span><span class='rparen'>)</span>
98
+
99
+ <span class='kw'>case</span> <span class='id identifier rubyid_result'>result</span>
100
+ <span class='kw'>when</span> <span class='const'><span class='object_link'><a href="Mangrove.html" title="Mangrove (module)">Mangrove</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="Mangrove/Result.html" title="Mangrove::Result (module)">Result</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="Mangrove/Result/Ok.html" title="Mangrove::Result::Ok (class)">Ok</a></span></span>
101
+ <span class='id identifier rubyid_result'>result</span><span class='period'>.</span><span class='id identifier rubyid_ok_inner'>ok_inner</span>
102
+ <span class='kw'>when</span> <span class='const'><span class='object_link'><a href="Mangrove.html" title="Mangrove (module)">Mangrove</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="Mangrove/Result.html" title="Mangrove::Result (module)">Result</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="Mangrove/Result/Err.html" title="Mangrove::Result::Err (class)">Err</a></span></span>
103
+ <span class='id identifier rubyid_error'>error</span> <span class='op'>=</span> <span class='id identifier rubyid_result'>result</span><span class='period'>.</span><span class='id identifier rubyid_err_inner'>err_inner</span>
104
+
105
+ <span class='kw'>case</span> <span class='id identifier rubyid_error'>error</span>
106
+ <span class='kw'>when</span> <span class='const'>MyService</span><span class='op'>::</span><span class='const'>MyServiceError</span><span class='op'>::</span><span class='const'>E1</span>
107
+ <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>e1: </span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_error'>error</span><span class='period'>.</span><span class='id identifier rubyid_inner'>inner</span><span class='period'>.</span><span class='id identifier rubyid_msg'>msg</span><span class='embexpr_end'>}</span><span class='tstring_end'>&quot;</span></span>
108
+ <span class='kw'>when</span> <span class='const'>MyService</span><span class='op'>::</span><span class='const'>MyServiceError</span><span class='op'>::</span><span class='const'>E2</span>
109
+ <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>e2: </span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_error'>error</span><span class='period'>.</span><span class='id identifier rubyid_inner'>inner</span><span class='period'>.</span><span class='id identifier rubyid_msg'>msg</span><span class='embexpr_end'>}</span><span class='tstring_end'>&quot;</span></span>
110
+ <span class='kw'>when</span> <span class='const'>MyService</span><span class='op'>::</span><span class='const'>MyServiceError</span><span class='op'>::</span><span class='const'>Other</span>
111
+ <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>other: </span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_error'>error</span><span class='period'>.</span><span class='id identifier rubyid_inner'>inner</span><span class='period'>.</span><span class='id identifier rubyid_msg'>msg</span><span class='embexpr_end'>}</span><span class='tstring_end'>&quot;</span></span>
112
+ <span class='kw'>else</span> <span class='const'>T</span><span class='period'>.</span><span class='id identifier rubyid_absurd'>absurd</span><span class='lparen'>(</span><span class='id identifier rubyid_error'>error</span><span class='rparen'>)</span>
113
+ <span class='kw'>end</span>
114
+ <span class='kw'>end</span>
115
+ <span class='kw'>end</span>
116
+ <span class='kw'>end</span>
117
+
118
+ <span class='kw'>class</span> <span class='const'>MyService</span>
119
+ <span class='id identifier rubyid_extend'>extend</span> <span class='const'>T</span><span class='op'>::</span><span class='const'>Sig</span>
120
+ <span class='id identifier rubyid_extend'>extend</span> <span class='const'>T</span><span class='op'>::</span><span class='const'>Generic</span>
121
+
122
+ <span class='id identifier rubyid_include'>include</span> <span class='const'>Kernel</span>
123
+
124
+ <span class='const'>E</span> <span class='op'>=</span> <span class='id identifier rubyid_type_member'>type_member</span> <span class='lbrace'>{</span> <span class='lbrace'>{</span> <span class='label'>upper:</span> <span class='const'>MyServiceError</span> <span class='rbrace'>}</span> <span class='rbrace'>}</span>
125
+
126
+ <span class='id identifier rubyid_sig'>sig</span> <span class='lbrace'>{</span> <span class='id identifier rubyid_params'>params</span><span class='lparen'>(</span><span class='label'>input:</span> <span class='const'>String</span><span class='rparen'>)</span><span class='period'>.</span><span class='id identifier rubyid_returns'>returns</span><span class='lparen'>(</span><span class='const'><span class='object_link'><a href="Mangrove.html" title="Mangrove (module)">Mangrove</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="Mangrove/Result.html" title="Mangrove::Result (module)">Result</a></span></span><span class='lbracket'>[</span><span class='const'>String</span><span class='comma'>,</span> <span class='const'>MyServiceError</span><span class='rbracket'>]</span><span class='rparen'>)</span> <span class='rbrace'>}</span>
127
+ <span class='kw'>def</span> <span class='id identifier rubyid_execute'>execute</span><span class='lparen'>(</span><span class='id identifier rubyid_input'>input</span><span class='rparen'>)</span>
128
+ <span class='id identifier rubyid_input'>input</span>
129
+ <span class='period'>.</span><span class='id identifier rubyid_safe_to_i'>safe_to_i</span>
130
+ <span class='period'>.</span><span class='id identifier rubyid_map_err_wt'>map_err_wt</span><span class='lparen'>(</span><span class='const'>MyServiceError</span><span class='op'>::</span><span class='const'>Other</span><span class='rparen'>)</span> <span class='lbrace'>{</span> <span class='op'>|</span><span class='id identifier rubyid_e'>e</span><span class='op'>|</span>
131
+ <span class='const'>MyServiceError</span><span class='op'>::</span><span class='const'>Other</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='lparen'>(</span><span class='const'>MyAppError</span><span class='op'>::</span><span class='const'>Other</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='lparen'>(</span><span class='id identifier rubyid_e'>e</span><span class='rparen'>)</span><span class='rparen'>)</span>
132
+ <span class='rbrace'>}</span><span class='period'>.</span><span class='id identifier rubyid_and_then_wt'>and_then_wt</span><span class='lparen'>(</span><span class='const'>String</span><span class='rparen'>)</span> <span class='lbrace'>{</span> <span class='op'>|</span><span class='id identifier rubyid_num'>num</span><span class='op'>|</span>
133
+ <span class='kw'>if</span> <span class='id identifier rubyid_num'>num</span> <span class='op'>&lt;</span> <span class='int'>1</span>
134
+ <span class='const'><span class='object_link'><a href="Mangrove.html" title="Mangrove (module)">Mangrove</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="Mangrove/Result.html" title="Mangrove::Result (module)">Result</a></span></span><span class='period'>.</span><span class='id identifier rubyid_err'><span class='object_link'><a href="Mangrove/Result.html#err-class_method" title="Mangrove::Result.err (method)">err</a></span></span><span class='lparen'>(</span><span class='const'>String</span><span class='comma'>,</span> <span class='const'>MyServiceError</span><span class='op'>::</span><span class='const'>E1</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='lparen'>(</span><span class='const'>MyAppError</span><span class='op'>::</span><span class='const'>E1</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>num &lt; 1</span><span class='tstring_end'>&quot;</span></span><span class='rparen'>)</span><span class='rparen'>)</span><span class='rparen'>)</span>
135
+ <span class='kw'>elsif</span> <span class='id identifier rubyid_num'>num</span> <span class='op'>&lt;</span> <span class='int'>3</span>
136
+ <span class='const'><span class='object_link'><a href="Mangrove.html" title="Mangrove (module)">Mangrove</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="Mangrove/Result.html" title="Mangrove::Result (module)">Result</a></span></span>
137
+ <span class='period'>.</span><span class='id identifier rubyid_ok'>ok</span><span class='lparen'>(</span><span class='id identifier rubyid_num'>num</span><span class='comma'>,</span> <span class='const'>String</span><span class='rparen'>)</span>
138
+ <span class='period'>.</span><span class='id identifier rubyid_and_then_wt'>and_then_wt</span><span class='lparen'>(</span><span class='const'>String</span><span class='rparen'>)</span> <span class='lbrace'>{</span> <span class='op'>|</span><span class='id identifier rubyid_n'>n</span><span class='op'>|</span>
139
+ <span class='kw'>if</span> <span class='id identifier rubyid_n'>n</span> <span class='op'>&lt;</span> <span class='int'>2</span>
140
+ <span class='const'><span class='object_link'><a href="Mangrove.html" title="Mangrove (module)">Mangrove</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="Mangrove/Result.html" title="Mangrove::Result (module)">Result</a></span></span><span class='period'>.</span><span class='id identifier rubyid_ok'><span class='object_link'><a href="Mangrove/Result.html#ok-class_method" title="Mangrove::Result.ok (method)">ok</a></span></span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>`</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_n'>n</span><span class='embexpr_end'>}</span><span class='tstring_content'>` &lt; 2</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span> <span class='const'>String</span><span class='rparen'>)</span>
141
+ <span class='kw'>else</span>
142
+ <span class='const'><span class='object_link'><a href="Mangrove.html" title="Mangrove (module)">Mangrove</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="Mangrove/Result.html" title="Mangrove::Result (module)">Result</a></span></span><span class='period'>.</span><span class='id identifier rubyid_err'><span class='object_link'><a href="Mangrove/Result.html#err-class_method" title="Mangrove::Result.err (method)">err</a></span></span><span class='lparen'>(</span><span class='const'>String</span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>not `</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_n'>n</span><span class='embexpr_end'>}</span><span class='tstring_content'>` &lt; 2</span><span class='tstring_end'>&quot;</span></span><span class='rparen'>)</span>
143
+ <span class='kw'>end</span>
144
+ <span class='rbrace'>}</span>
145
+ <span class='period'>.</span><span class='id identifier rubyid_map_err_wt'>map_err_wt</span><span class='lparen'>(</span><span class='const'>MyServiceError</span><span class='op'>::</span><span class='const'>E1</span><span class='rparen'>)</span> <span class='lbrace'>{</span> <span class='op'>|</span><span class='id identifier rubyid_e'>e</span><span class='op'>|</span>
146
+ <span class='const'>MyServiceError</span><span class='op'>::</span><span class='const'>E1</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='lparen'>(</span><span class='const'>MyAppError</span><span class='op'>::</span><span class='const'>E1</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>mapping to E1 </span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_e'>e</span><span class='embexpr_end'>}</span><span class='tstring_end'>&quot;</span></span><span class='rparen'>)</span><span class='rparen'>)</span>
147
+ <span class='rbrace'>}</span>
148
+ <span class='period'>.</span><span class='id identifier rubyid_map_ok'>map_ok</span> <span class='lbrace'>{</span> <span class='op'>|</span><span class='id identifier rubyid_str'>str</span><span class='op'>|</span>
149
+ <span class='lbrace'>{</span>
150
+ <span class='label'>my_key:</span> <span class='id identifier rubyid_str'>str</span>
151
+ <span class='rbrace'>}</span>
152
+ <span class='rbrace'>}</span>
153
+ <span class='period'>.</span><span class='id identifier rubyid_map_ok'>map_ok</span><span class='lparen'>(</span><span class='op'>&amp;</span><span class='symbol'>:to_s</span><span class='rparen'>)</span>
154
+ <span class='kw'>else</span>
155
+ <span class='const'><span class='object_link'><a href="Mangrove.html" title="Mangrove (module)">Mangrove</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="Mangrove/Result.html" title="Mangrove::Result (module)">Result</a></span></span><span class='period'>.</span><span class='id identifier rubyid_err'><span class='object_link'><a href="Mangrove/Result.html#err-class_method" title="Mangrove::Result.err (method)">err</a></span></span><span class='lparen'>(</span><span class='const'>String</span><span class='comma'>,</span> <span class='const'>MyServiceError</span><span class='op'>::</span><span class='const'>E2</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='lparen'>(</span><span class='const'>MyAppError</span><span class='op'>::</span><span class='const'>E2</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='rparen'>)</span><span class='rparen'>)</span>
156
+ <span class='kw'>end</span>
157
+ <span class='rbrace'>}</span>
158
+ <span class='kw'>end</span>
159
+ <span class='kw'>end</span>
160
+ </code></pre>
161
+
92
162
  <p>Other examples are available at href="https://github.com/kazzix14/mangrove/tree/main/spec"></a>.</p>
93
163
 
94
164
  <h2 id="label-Features">Features</h2>
@@ -113,7 +183,7 @@
113
183
 
114
184
  <h2 id="label-Usage">Usage</h2>
115
185
 
116
- <p>Documentation is available <a href="https://kazzix14.github.io/mangrove/">here</a>. For more concrete examples, see href="https://github.com/kazzix14/mangrove/tree/main/spec"></a>.</p>
186
+ <p><a href="https://kazzix14.github.io/mangrove/">Documentation is available here</a>. For more concrete examples, see href="https://github.com/kazzix14/mangrove/tree/main/spec"></a>.</p>
117
187
 
118
188
  <pre class="code ruby"><code class="ruby"><span class='const'><span class='object_link'><a href="Mangrove.html" title="Mangrove (module)">Mangrove</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="Mangrove/Result.html" title="Mangrove::Result (module)">Result</a></span></span><span class='lbracket'>[</span><span class='const'>OkType</span><span class='comma'>,</span> <span class='const'>ErrType</span><span class='rbracket'>]</span>
119
189
  <span class='const'><span class='object_link'><a href="Mangrove.html" title="Mangrove (module)">Mangrove</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="Mangrove/Result.html" title="Mangrove::Result (module)">Result</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="Mangrove/Result/Ok.html" title="Mangrove::Result::Ok (class)">Ok</a></span></span><span class='lbracket'>[</span><span class='const'>OkType</span><span class='comma'>,</span> <span class='const'>ErrType</span><span class='rbracket'>]</span>
@@ -132,7 +202,7 @@
132
202
  </span><span class='id identifier rubyid_include'>include</span> <span class='const'><span class='object_link'><a href="Mangrove.html" title="Mangrove (module)">Mangrove</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="Mangrove/ControlFlow.html" title="Mangrove::ControlFlow (module)">ControlFlow</a></span></span><span class='op'>::</span><span class='const'>Handler</span>
133
203
  </code></pre>
134
204
 
135
- <h2 id="label-Commands">Commands</h2>
205
+ <h2 id="label-Commands+for+Development">Commands for Development</h2>
136
206
 
137
207
  <pre class="code ruby"><code class="ruby">git config core.hooksPath hooks
138
208
  bundle exec tapioca init
@@ -162,7 +232,7 @@ rake release
162
232
  </div></div>
163
233
 
164
234
  <div id="footer">
165
- Generated on Tue Oct 31 12:03:29 2023 by
235
+ Generated on Tue Oct 31 12:15:12 2023 by
166
236
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
167
237
  0.9.34 (ruby-3.2.2).
168
238
  </div>
data/docs/index.html CHANGED
@@ -60,12 +60,10 @@
60
60
  <div id="content"><div id='filecontents'>
61
61
  <h1 id="label-Mangrove">Mangrove</h1>
62
62
 
63
- <p>Mangrove provides type utility to use with Sorbet.</p>
63
+ <p>Mangrove provides type utility to use with Sorbet. use <code>rubocop-mangrove</code> to statically check rescuing ControlSignal is done</p>
64
64
 
65
65
  <p>You can do something like this with the gem.</p>
66
66
 
67
- <p>use ‘rubocop-mangrove“ to statically check rescuing ControlSignal is done</p>
68
-
69
67
  <pre class="code ruby"><code class="ruby"><span class='kw'>class</span> <span class='const'>TransposeExample</span>
70
68
  <span class='id identifier rubyid_extend'>extend</span> <span class='const'>T</span><span class='op'>::</span><span class='const'>Sig</span>
71
69
 
@@ -89,6 +87,78 @@
89
87
  <span class='id identifier rubyid_expect'>expect</span><span class='lparen'>(</span><span class='const'>TransposeExample</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='period'>.</span><span class='id identifier rubyid_divide_arguments_by_3'>divide_arguments_by_3</span><span class='lparen'>(</span><span class='lbracket'>[</span><span class='int'>3</span><span class='comma'>,</span> <span class='int'>6</span><span class='comma'>,</span> <span class='int'>9</span><span class='rbracket'>]</span><span class='rparen'>)</span><span class='rparen'>)</span><span class='period'>.</span><span class='id identifier rubyid_to'>to</span> <span class='id identifier rubyid_eq'>eq</span> <span class='const'><span class='object_link'><a href="Mangrove.html" title="Mangrove (module)">Mangrove</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="Mangrove/Result.html" title="Mangrove::Result (module)">Result</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="Mangrove/Result/Ok.html" title="Mangrove::Result::Ok (class)">Ok</a></span></span><span class='period'>.</span><span class='id identifier rubyid_new'><span class='object_link'><a href="Mangrove/Result/Ok.html#initialize-instance_method" title="Mangrove::Result::Ok#initialize (method)">new</a></span></span><span class='lparen'>(</span><span class='lbracket'>[</span><span class='int'>1</span><span class='comma'>,</span> <span class='int'>2</span><span class='comma'>,</span> <span class='int'>3</span><span class='rbracket'>]</span><span class='rparen'>)</span>
90
88
  </code></pre>
91
89
 
90
+ <p>or like this.</p>
91
+
92
+ <pre class="code ruby"><code class="ruby"><span class='kw'>class</span> <span class='const'>MyController</span>
93
+ <span class='id identifier rubyid_extend'>extend</span> <span class='const'>T</span><span class='op'>::</span><span class='const'>Sig</span>
94
+
95
+ <span class='id identifier rubyid_sig'>sig</span> <span class='lbrace'>{</span> <span class='id identifier rubyid_params'>params</span><span class='lparen'>(</span><span class='label'>input:</span> <span class='const'>String</span><span class='rparen'>)</span><span class='period'>.</span><span class='id identifier rubyid_returns'>returns</span><span class='lparen'>(</span><span class='const'>String</span><span class='rparen'>)</span> <span class='rbrace'>}</span>
96
+ <span class='kw'>def</span> <span class='id identifier rubyid_create'>create</span><span class='lparen'>(</span><span class='id identifier rubyid_input'>input</span><span class='rparen'>)</span>
97
+ <span class='id identifier rubyid_result'>result</span> <span class='op'>=</span> <span class='const'>MyService</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='period'>.</span><span class='id identifier rubyid_execute'>execute</span><span class='lparen'>(</span><span class='id identifier rubyid_input'>input</span><span class='rparen'>)</span>
98
+
99
+ <span class='kw'>case</span> <span class='id identifier rubyid_result'>result</span>
100
+ <span class='kw'>when</span> <span class='const'><span class='object_link'><a href="Mangrove.html" title="Mangrove (module)">Mangrove</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="Mangrove/Result.html" title="Mangrove::Result (module)">Result</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="Mangrove/Result/Ok.html" title="Mangrove::Result::Ok (class)">Ok</a></span></span>
101
+ <span class='id identifier rubyid_result'>result</span><span class='period'>.</span><span class='id identifier rubyid_ok_inner'>ok_inner</span>
102
+ <span class='kw'>when</span> <span class='const'><span class='object_link'><a href="Mangrove.html" title="Mangrove (module)">Mangrove</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="Mangrove/Result.html" title="Mangrove::Result (module)">Result</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="Mangrove/Result/Err.html" title="Mangrove::Result::Err (class)">Err</a></span></span>
103
+ <span class='id identifier rubyid_error'>error</span> <span class='op'>=</span> <span class='id identifier rubyid_result'>result</span><span class='period'>.</span><span class='id identifier rubyid_err_inner'>err_inner</span>
104
+
105
+ <span class='kw'>case</span> <span class='id identifier rubyid_error'>error</span>
106
+ <span class='kw'>when</span> <span class='const'>MyService</span><span class='op'>::</span><span class='const'>MyServiceError</span><span class='op'>::</span><span class='const'>E1</span>
107
+ <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>e1: </span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_error'>error</span><span class='period'>.</span><span class='id identifier rubyid_inner'>inner</span><span class='period'>.</span><span class='id identifier rubyid_msg'>msg</span><span class='embexpr_end'>}</span><span class='tstring_end'>&quot;</span></span>
108
+ <span class='kw'>when</span> <span class='const'>MyService</span><span class='op'>::</span><span class='const'>MyServiceError</span><span class='op'>::</span><span class='const'>E2</span>
109
+ <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>e2: </span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_error'>error</span><span class='period'>.</span><span class='id identifier rubyid_inner'>inner</span><span class='period'>.</span><span class='id identifier rubyid_msg'>msg</span><span class='embexpr_end'>}</span><span class='tstring_end'>&quot;</span></span>
110
+ <span class='kw'>when</span> <span class='const'>MyService</span><span class='op'>::</span><span class='const'>MyServiceError</span><span class='op'>::</span><span class='const'>Other</span>
111
+ <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>other: </span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_error'>error</span><span class='period'>.</span><span class='id identifier rubyid_inner'>inner</span><span class='period'>.</span><span class='id identifier rubyid_msg'>msg</span><span class='embexpr_end'>}</span><span class='tstring_end'>&quot;</span></span>
112
+ <span class='kw'>else</span> <span class='const'>T</span><span class='period'>.</span><span class='id identifier rubyid_absurd'>absurd</span><span class='lparen'>(</span><span class='id identifier rubyid_error'>error</span><span class='rparen'>)</span>
113
+ <span class='kw'>end</span>
114
+ <span class='kw'>end</span>
115
+ <span class='kw'>end</span>
116
+ <span class='kw'>end</span>
117
+
118
+ <span class='kw'>class</span> <span class='const'>MyService</span>
119
+ <span class='id identifier rubyid_extend'>extend</span> <span class='const'>T</span><span class='op'>::</span><span class='const'>Sig</span>
120
+ <span class='id identifier rubyid_extend'>extend</span> <span class='const'>T</span><span class='op'>::</span><span class='const'>Generic</span>
121
+
122
+ <span class='id identifier rubyid_include'>include</span> <span class='const'>Kernel</span>
123
+
124
+ <span class='const'>E</span> <span class='op'>=</span> <span class='id identifier rubyid_type_member'>type_member</span> <span class='lbrace'>{</span> <span class='lbrace'>{</span> <span class='label'>upper:</span> <span class='const'>MyServiceError</span> <span class='rbrace'>}</span> <span class='rbrace'>}</span>
125
+
126
+ <span class='id identifier rubyid_sig'>sig</span> <span class='lbrace'>{</span> <span class='id identifier rubyid_params'>params</span><span class='lparen'>(</span><span class='label'>input:</span> <span class='const'>String</span><span class='rparen'>)</span><span class='period'>.</span><span class='id identifier rubyid_returns'>returns</span><span class='lparen'>(</span><span class='const'><span class='object_link'><a href="Mangrove.html" title="Mangrove (module)">Mangrove</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="Mangrove/Result.html" title="Mangrove::Result (module)">Result</a></span></span><span class='lbracket'>[</span><span class='const'>String</span><span class='comma'>,</span> <span class='const'>MyServiceError</span><span class='rbracket'>]</span><span class='rparen'>)</span> <span class='rbrace'>}</span>
127
+ <span class='kw'>def</span> <span class='id identifier rubyid_execute'>execute</span><span class='lparen'>(</span><span class='id identifier rubyid_input'>input</span><span class='rparen'>)</span>
128
+ <span class='id identifier rubyid_input'>input</span>
129
+ <span class='period'>.</span><span class='id identifier rubyid_safe_to_i'>safe_to_i</span>
130
+ <span class='period'>.</span><span class='id identifier rubyid_map_err_wt'>map_err_wt</span><span class='lparen'>(</span><span class='const'>MyServiceError</span><span class='op'>::</span><span class='const'>Other</span><span class='rparen'>)</span> <span class='lbrace'>{</span> <span class='op'>|</span><span class='id identifier rubyid_e'>e</span><span class='op'>|</span>
131
+ <span class='const'>MyServiceError</span><span class='op'>::</span><span class='const'>Other</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='lparen'>(</span><span class='const'>MyAppError</span><span class='op'>::</span><span class='const'>Other</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='lparen'>(</span><span class='id identifier rubyid_e'>e</span><span class='rparen'>)</span><span class='rparen'>)</span>
132
+ <span class='rbrace'>}</span><span class='period'>.</span><span class='id identifier rubyid_and_then_wt'>and_then_wt</span><span class='lparen'>(</span><span class='const'>String</span><span class='rparen'>)</span> <span class='lbrace'>{</span> <span class='op'>|</span><span class='id identifier rubyid_num'>num</span><span class='op'>|</span>
133
+ <span class='kw'>if</span> <span class='id identifier rubyid_num'>num</span> <span class='op'>&lt;</span> <span class='int'>1</span>
134
+ <span class='const'><span class='object_link'><a href="Mangrove.html" title="Mangrove (module)">Mangrove</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="Mangrove/Result.html" title="Mangrove::Result (module)">Result</a></span></span><span class='period'>.</span><span class='id identifier rubyid_err'><span class='object_link'><a href="Mangrove/Result.html#err-class_method" title="Mangrove::Result.err (method)">err</a></span></span><span class='lparen'>(</span><span class='const'>String</span><span class='comma'>,</span> <span class='const'>MyServiceError</span><span class='op'>::</span><span class='const'>E1</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='lparen'>(</span><span class='const'>MyAppError</span><span class='op'>::</span><span class='const'>E1</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>num &lt; 1</span><span class='tstring_end'>&quot;</span></span><span class='rparen'>)</span><span class='rparen'>)</span><span class='rparen'>)</span>
135
+ <span class='kw'>elsif</span> <span class='id identifier rubyid_num'>num</span> <span class='op'>&lt;</span> <span class='int'>3</span>
136
+ <span class='const'><span class='object_link'><a href="Mangrove.html" title="Mangrove (module)">Mangrove</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="Mangrove/Result.html" title="Mangrove::Result (module)">Result</a></span></span>
137
+ <span class='period'>.</span><span class='id identifier rubyid_ok'>ok</span><span class='lparen'>(</span><span class='id identifier rubyid_num'>num</span><span class='comma'>,</span> <span class='const'>String</span><span class='rparen'>)</span>
138
+ <span class='period'>.</span><span class='id identifier rubyid_and_then_wt'>and_then_wt</span><span class='lparen'>(</span><span class='const'>String</span><span class='rparen'>)</span> <span class='lbrace'>{</span> <span class='op'>|</span><span class='id identifier rubyid_n'>n</span><span class='op'>|</span>
139
+ <span class='kw'>if</span> <span class='id identifier rubyid_n'>n</span> <span class='op'>&lt;</span> <span class='int'>2</span>
140
+ <span class='const'><span class='object_link'><a href="Mangrove.html" title="Mangrove (module)">Mangrove</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="Mangrove/Result.html" title="Mangrove::Result (module)">Result</a></span></span><span class='period'>.</span><span class='id identifier rubyid_ok'><span class='object_link'><a href="Mangrove/Result.html#ok-class_method" title="Mangrove::Result.ok (method)">ok</a></span></span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>`</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_n'>n</span><span class='embexpr_end'>}</span><span class='tstring_content'>` &lt; 2</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span> <span class='const'>String</span><span class='rparen'>)</span>
141
+ <span class='kw'>else</span>
142
+ <span class='const'><span class='object_link'><a href="Mangrove.html" title="Mangrove (module)">Mangrove</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="Mangrove/Result.html" title="Mangrove::Result (module)">Result</a></span></span><span class='period'>.</span><span class='id identifier rubyid_err'><span class='object_link'><a href="Mangrove/Result.html#err-class_method" title="Mangrove::Result.err (method)">err</a></span></span><span class='lparen'>(</span><span class='const'>String</span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>not `</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_n'>n</span><span class='embexpr_end'>}</span><span class='tstring_content'>` &lt; 2</span><span class='tstring_end'>&quot;</span></span><span class='rparen'>)</span>
143
+ <span class='kw'>end</span>
144
+ <span class='rbrace'>}</span>
145
+ <span class='period'>.</span><span class='id identifier rubyid_map_err_wt'>map_err_wt</span><span class='lparen'>(</span><span class='const'>MyServiceError</span><span class='op'>::</span><span class='const'>E1</span><span class='rparen'>)</span> <span class='lbrace'>{</span> <span class='op'>|</span><span class='id identifier rubyid_e'>e</span><span class='op'>|</span>
146
+ <span class='const'>MyServiceError</span><span class='op'>::</span><span class='const'>E1</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='lparen'>(</span><span class='const'>MyAppError</span><span class='op'>::</span><span class='const'>E1</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>mapping to E1 </span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_e'>e</span><span class='embexpr_end'>}</span><span class='tstring_end'>&quot;</span></span><span class='rparen'>)</span><span class='rparen'>)</span>
147
+ <span class='rbrace'>}</span>
148
+ <span class='period'>.</span><span class='id identifier rubyid_map_ok'>map_ok</span> <span class='lbrace'>{</span> <span class='op'>|</span><span class='id identifier rubyid_str'>str</span><span class='op'>|</span>
149
+ <span class='lbrace'>{</span>
150
+ <span class='label'>my_key:</span> <span class='id identifier rubyid_str'>str</span>
151
+ <span class='rbrace'>}</span>
152
+ <span class='rbrace'>}</span>
153
+ <span class='period'>.</span><span class='id identifier rubyid_map_ok'>map_ok</span><span class='lparen'>(</span><span class='op'>&amp;</span><span class='symbol'>:to_s</span><span class='rparen'>)</span>
154
+ <span class='kw'>else</span>
155
+ <span class='const'><span class='object_link'><a href="Mangrove.html" title="Mangrove (module)">Mangrove</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="Mangrove/Result.html" title="Mangrove::Result (module)">Result</a></span></span><span class='period'>.</span><span class='id identifier rubyid_err'><span class='object_link'><a href="Mangrove/Result.html#err-class_method" title="Mangrove::Result.err (method)">err</a></span></span><span class='lparen'>(</span><span class='const'>String</span><span class='comma'>,</span> <span class='const'>MyServiceError</span><span class='op'>::</span><span class='const'>E2</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='lparen'>(</span><span class='const'>MyAppError</span><span class='op'>::</span><span class='const'>E2</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='rparen'>)</span><span class='rparen'>)</span>
156
+ <span class='kw'>end</span>
157
+ <span class='rbrace'>}</span>
158
+ <span class='kw'>end</span>
159
+ <span class='kw'>end</span>
160
+ </code></pre>
161
+
92
162
  <p>Other examples are available at href="https://github.com/kazzix14/mangrove/tree/main/spec"></a>.</p>
93
163
 
94
164
  <h2 id="label-Features">Features</h2>
@@ -113,7 +183,7 @@
113
183
 
114
184
  <h2 id="label-Usage">Usage</h2>
115
185
 
116
- <p>Documentation is available <a href="https://kazzix14.github.io/mangrove/">here</a>. For more concrete examples, see href="https://github.com/kazzix14/mangrove/tree/main/spec"></a>.</p>
186
+ <p><a href="https://kazzix14.github.io/mangrove/">Documentation is available here</a>. For more concrete examples, see href="https://github.com/kazzix14/mangrove/tree/main/spec"></a>.</p>
117
187
 
118
188
  <pre class="code ruby"><code class="ruby"><span class='const'><span class='object_link'><a href="Mangrove.html" title="Mangrove (module)">Mangrove</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="Mangrove/Result.html" title="Mangrove::Result (module)">Result</a></span></span><span class='lbracket'>[</span><span class='const'>OkType</span><span class='comma'>,</span> <span class='const'>ErrType</span><span class='rbracket'>]</span>
119
189
  <span class='const'><span class='object_link'><a href="Mangrove.html" title="Mangrove (module)">Mangrove</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="Mangrove/Result.html" title="Mangrove::Result (module)">Result</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="Mangrove/Result/Ok.html" title="Mangrove::Result::Ok (class)">Ok</a></span></span><span class='lbracket'>[</span><span class='const'>OkType</span><span class='comma'>,</span> <span class='const'>ErrType</span><span class='rbracket'>]</span>
@@ -132,7 +202,7 @@
132
202
  </span><span class='id identifier rubyid_include'>include</span> <span class='const'><span class='object_link'><a href="Mangrove.html" title="Mangrove (module)">Mangrove</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="Mangrove/ControlFlow.html" title="Mangrove::ControlFlow (module)">ControlFlow</a></span></span><span class='op'>::</span><span class='const'>Handler</span>
133
203
  </code></pre>
134
204
 
135
- <h2 id="label-Commands">Commands</h2>
205
+ <h2 id="label-Commands+for+Development">Commands for Development</h2>
136
206
 
137
207
  <pre class="code ruby"><code class="ruby">git config core.hooksPath hooks
138
208
  bundle exec tapioca init
@@ -162,7 +232,7 @@ rake release
162
232
  </div></div>
163
233
 
164
234
  <div id="footer">
165
- Generated on Tue Oct 31 12:03:29 2023 by
235
+ Generated on Tue Oct 31 12:15:12 2023 by
166
236
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
167
237
  0.9.34 (ruby-3.2.2).
168
238
  </div>
@@ -100,7 +100,7 @@
100
100
  </div>
101
101
 
102
102
  <div id="footer">
103
- Generated on Tue Oct 31 12:03:29 2023 by
103
+ Generated on Tue Oct 31 12:15:12 2023 by
104
104
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
105
105
  0.9.34 (ruby-3.2.2).
106
106
  </div>
@@ -2,5 +2,5 @@
2
2
  # frozen_string_literal: true
3
3
 
4
4
  module Mangrove
5
- VERSION = "0.15.0"
5
+ VERSION = "0.15.1"
6
6
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mangrove
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.15.0
4
+ version: 0.15.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Kazuma Murata