simple-service 0.1.5 → 0.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.rubocop.yml +10 -2
- data/Gemfile +3 -1
- data/Makefile +5 -2
- data/TODO.txt +3 -0
- data/VERSION +1 -1
- data/doc/Simple/Service/Action/Comment/Extractor.html +1 -1
- data/doc/Simple/Service/Action/Comment.html +1 -1
- data/doc/Simple/Service/Action/MethodReflection.html +1 -1
- data/doc/Simple/Service/Action/Parameter.html +2 -2
- data/doc/Simple/Service/Action.html +59 -150
- data/doc/Simple/Service/ArgumentError.html +1 -1
- data/doc/Simple/Service/ClassMethods.html +5 -5
- data/doc/Simple/Service/Context.html +5 -5
- data/doc/Simple/Service/ContextMissingError.html +1 -1
- data/doc/Simple/Service/ContextReadOnlyError.html +1 -1
- data/doc/Simple/Service/ExtraArguments.html +1 -1
- data/doc/Simple/Service/GemHelper.html +1 -1
- data/doc/Simple/Service/MissingArguments.html +1 -1
- data/doc/Simple/Service/NoSuchAction.html +1 -1
- data/doc/Simple/Service.html +89 -87
- data/doc/Simple.html +1 -1
- data/doc/_index.html +7 -19
- data/doc/class_list.html +1 -1
- data/doc/file.README.html +3 -3
- data/doc/file.TODO.html +70 -0
- data/doc/file_list.html +5 -0
- data/doc/index.html +3 -3
- data/doc/method_list.html +59 -115
- data/doc/top-level-namespace.html +1 -1
- data/lib/simple/service/action/comment.rb +1 -1
- data/lib/simple/service/action.rb +10 -3
- data/lib/simple/service/errors.rb +4 -3
- data/lib/simple/service.rb +33 -28
- data/lib/simple/workflow/context.rb +105 -0
- data/lib/simple/workflow/current_context.rb +33 -0
- data/lib/simple/workflow/reloader.rb +84 -0
- data/lib/simple/workflow/rspec_helper.rb +15 -0
- data/lib/simple/workflow.rb +96 -0
- data/lib/simple-workflow.rb +3 -0
- data/scripts/test +2 -0
- data/simple-service.gemspec +1 -0
- data/spec/simple/service/action_invoke3_spec.rb +0 -8
- data/spec/simple/service/action_invoke_spec.rb +82 -20
- data/spec/simple/service/service_spec.rb +13 -56
- data/spec/simple/workflow/context_spec.rb +90 -0
- data/spec/simple/workflow/current_context_spec.rb +41 -0
- data/spec/simple/workflow/reloader_spec/example1.rb +10 -0
- data/spec/simple/workflow/reloader_spec/example2.rb +7 -0
- data/spec/simple/workflow/reloader_spec.rb +48 -0
- data/spec/spec_helper.rb +2 -1
- data/spec/support/spec_services.rb +1 -3
- metadata +42 -7
- data/doc/Simple/Service/Action/IndieHash.html +0 -506
- data/lib/simple/service/context.rb +0 -94
- data/spec/simple/service/context_spec.rb +0 -69
data/doc/index.html
CHANGED
@@ -111,7 +111,7 @@
|
|
111
111
|
<p>If the calling site, however, has <strong>named arguments</strong> (in a Hash), one would invoke a service using <code>invoke2</code>. This is used for HTTPD integration (with <code>simple-httpd</code>.)</p>
|
112
112
|
|
113
113
|
<pre class="code ruby"><code class="ruby"> <span class='id identifier rubyid_args'>args</span> <span class='op'>=</span> <span class='lbrace'>{</span> <span class='label'>name:</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>My Universe</span><span class='tstring_end'>"</span></span><span class='comma'>,</span> <span class='label'>c:</span> <span class='int'>299792458</span><span class='rbrace'>}</span>
|
114
|
-
<span class='const'><span class='object_link'><a href="Simple.html" title="Simple (module)">Simple</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="Simple/Service.html" title="Simple::Service (module)">Service</a></span></span><span class='period'>.</span><span class='id identifier rubyid_invoke2'
|
114
|
+
<span class='const'><span class='object_link'><a href="Simple.html" title="Simple (module)">Simple</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="Simple/Service.html" title="Simple::Service (module)">Service</a></span></span><span class='period'>.</span><span class='id identifier rubyid_invoke2'>invoke2</span> <span class='const'>GodMode</span><span class='comma'>,</span>
|
115
115
|
<span class='symbol'>:build_universe</span><span class='comma'>,</span>
|
116
116
|
<span class='label'>args:</span> <span class='id identifier rubyid_args'>args</span>
|
117
117
|
</code></pre>
|
@@ -122,7 +122,7 @@
|
|
122
122
|
|
123
123
|
<pre class="code ruby"><code class="ruby"><span class='const'><span class='object_link'><a href="Simple.html" title="Simple (module)">Simple</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="Simple/Service.html" title="Simple::Service (module)">Service</a></span></span><span class='period'>.</span><span class='id identifier rubyid_with_context'><span class='object_link'><a href="Simple/Service.html#with_context-class_method" title="Simple::Service.with_context (method)">with_context</a></span></span><span class='lparen'>(</span><span class='kw'>nil</span><span class='rparen'>)</span> <span class='kw'>do</span>
|
124
124
|
<span class='id identifier rubyid_args'>args</span> <span class='op'>=</span> <span class='lbrace'>{</span> <span class='label'>name:</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>My Universe</span><span class='tstring_end'>"</span></span><span class='comma'>,</span> <span class='label'>c:</span> <span class='int'>299792458</span><span class='rbrace'>}</span>
|
125
|
-
<span class='const'><span class='object_link'><a href="Simple.html" title="Simple (module)">Simple</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="Simple/Service.html" title="Simple::Service (module)">Service</a></span></span><span class='period'>.</span><span class='id identifier rubyid_invoke2'
|
125
|
+
<span class='const'><span class='object_link'><a href="Simple.html" title="Simple (module)">Simple</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="Simple/Service.html" title="Simple::Service (module)">Service</a></span></span><span class='period'>.</span><span class='id identifier rubyid_invoke2'>invoke2</span> <span class='const'>GodMode</span><span class='comma'>,</span>
|
126
126
|
<span class='symbol'>:build_universe</span><span class='comma'>,</span>
|
127
127
|
<span class='label'>args:</span> <span class='id identifier rubyid_args'>args</span>
|
128
128
|
<span class='kw'>end</span>
|
@@ -136,7 +136,7 @@
|
|
136
136
|
</div></div>
|
137
137
|
|
138
138
|
<div id="footer">
|
139
|
-
Generated on
|
139
|
+
Generated on Wed Dec 4 22:57:12 2019 by
|
140
140
|
<a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
|
141
141
|
0.9.20 (ruby-2.5.1).
|
142
142
|
</div>
|
data/doc/method_list.html
CHANGED
@@ -46,24 +46,24 @@
|
|
46
46
|
|
47
47
|
<li class="odd ">
|
48
48
|
<div class="item">
|
49
|
-
<span class='object_link'><a href="Simple/Service/
|
50
|
-
<small>Simple::Service::
|
49
|
+
<span class='object_link'><a href="Simple/Service/ClassMethods.html#__simple_service_actions__-instance_method" title="Simple::Service::ClassMethods#__simple_service_actions__ (method)">#__simple_service_actions__</a></span>
|
50
|
+
<small>Simple::Service::ClassMethods</small>
|
51
51
|
</div>
|
52
52
|
</li>
|
53
53
|
|
54
54
|
|
55
55
|
<li class="even ">
|
56
56
|
<div class="item">
|
57
|
-
<span class='object_link'><a href="Simple/Service/
|
58
|
-
<small>Simple::Service::
|
57
|
+
<span class='object_link'><a href="Simple/Service/Action/Comment/Extractor.html#_parse_source-instance_method" title="Simple::Service::Action::Comment::Extractor#_parse_source (method)">#_parse_source</a></span>
|
58
|
+
<small>Simple::Service::Action::Comment::Extractor</small>
|
59
59
|
</div>
|
60
60
|
</li>
|
61
61
|
|
62
62
|
|
63
63
|
<li class="odd ">
|
64
64
|
<div class="item">
|
65
|
-
<span class='object_link'><a href="Simple/Service/
|
66
|
-
<small>Simple::Service::
|
65
|
+
<span class='object_link'><a href="Simple/Service/ExtraArguments.html#action-instance_method" title="Simple::Service::ExtraArguments#action (method)">#action</a></span>
|
66
|
+
<small>Simple::Service::ExtraArguments</small>
|
67
67
|
</div>
|
68
68
|
</li>
|
69
69
|
|
@@ -85,14 +85,6 @@
|
|
85
85
|
|
86
86
|
|
87
87
|
<li class="even ">
|
88
|
-
<div class="item">
|
89
|
-
<span class='object_link'><a href="Simple/Service/ExtraArguments.html#action-instance_method" title="Simple::Service::ExtraArguments#action (method)">#action</a></span>
|
90
|
-
<small>Simple::Service::ExtraArguments</small>
|
91
|
-
</div>
|
92
|
-
</li>
|
93
|
-
|
94
|
-
|
95
|
-
<li class="odd ">
|
96
88
|
<div class="item">
|
97
89
|
<span class='object_link'><a href="Simple/Service.html#actions-class_method" title="Simple::Service.actions (method)">actions</a></span>
|
98
90
|
<small>Simple::Service</small>
|
@@ -100,7 +92,7 @@
|
|
100
92
|
</li>
|
101
93
|
|
102
94
|
|
103
|
-
<li class="
|
95
|
+
<li class="odd ">
|
104
96
|
<div class="item">
|
105
97
|
<span class='object_link'><a href="Simple/Service/ExtraArguments.html#arguments-instance_method" title="Simple::Service::ExtraArguments#arguments (method)">#arguments</a></span>
|
106
98
|
<small>Simple::Service::ExtraArguments</small>
|
@@ -108,7 +100,7 @@
|
|
108
100
|
</li>
|
109
101
|
|
110
102
|
|
111
|
-
<li class="
|
103
|
+
<li class="even ">
|
112
104
|
<div class="item">
|
113
105
|
<span class='object_link'><a href="Simple/Service.html#context-class_method" title="Simple::Service.context (method)">context</a></span>
|
114
106
|
<small>Simple::Service</small>
|
@@ -116,7 +108,7 @@
|
|
116
108
|
</li>
|
117
109
|
|
118
110
|
|
119
|
-
<li class="
|
111
|
+
<li class="odd ">
|
120
112
|
<div class="item">
|
121
113
|
<span class='object_link'><a href="Simple/Service/Action/Parameter.html#default_value-instance_method" title="Simple::Service::Action::Parameter#default_value (method)">#default_value</a></span>
|
122
114
|
<small>Simple::Service::Action::Parameter</small>
|
@@ -124,7 +116,7 @@
|
|
124
116
|
</li>
|
125
117
|
|
126
118
|
|
127
|
-
<li class="
|
119
|
+
<li class="even ">
|
128
120
|
<div class="item">
|
129
121
|
<span class='object_link'><a href="Simple/Service/Action.html#enumerate-class_method" title="Simple::Service::Action.enumerate (method)">enumerate</a></span>
|
130
122
|
<small>Simple::Service::Action</small>
|
@@ -132,7 +124,7 @@
|
|
132
124
|
</li>
|
133
125
|
|
134
126
|
|
135
|
-
<li class="
|
127
|
+
<li class="odd ">
|
136
128
|
<div class="item">
|
137
129
|
<span class='object_link'><a href="Simple/Service/Action/Comment.html#extract-class_method" title="Simple::Service::Action::Comment.extract (method)">extract</a></span>
|
138
130
|
<small>Simple::Service::Action::Comment</small>
|
@@ -140,7 +132,7 @@
|
|
140
132
|
</li>
|
141
133
|
|
142
134
|
|
143
|
-
<li class="
|
135
|
+
<li class="even ">
|
144
136
|
<div class="item">
|
145
137
|
<span class='object_link'><a href="Simple/Service/Action/Comment/Extractor.html#extract_comment_lines-instance_method" title="Simple::Service::Action::Comment::Extractor#extract_comment_lines (method)">#extract_comment_lines</a></span>
|
146
138
|
<small>Simple::Service::Action::Comment::Extractor</small>
|
@@ -148,14 +140,6 @@
|
|
148
140
|
</li>
|
149
141
|
|
150
142
|
|
151
|
-
<li class="even ">
|
152
|
-
<div class="item">
|
153
|
-
<span class='object_link'><a href="Simple/Service/Action/IndieHash.html#fetch_values-instance_method" title="Simple::Service::Action::IndieHash#fetch_values (method)">#fetch_values</a></span>
|
154
|
-
<small>Simple::Service::Action::IndieHash</small>
|
155
|
-
</div>
|
156
|
-
</li>
|
157
|
-
|
158
|
-
|
159
143
|
<li class="odd ">
|
160
144
|
<div class="item">
|
161
145
|
<span class='object_link'><a href="Simple/Service/Action/Comment.html#full-instance_method" title="Simple::Service::Action::Comment#full (method)">#full</a></span>
|
@@ -190,32 +174,32 @@
|
|
190
174
|
|
191
175
|
<li class="odd ">
|
192
176
|
<div class="item">
|
193
|
-
<span class='object_link'><a href="Simple/Service/
|
194
|
-
<small>Simple::Service::
|
177
|
+
<span class='object_link'><a href="Simple/Service/Action.html#initialize-instance_method" title="Simple::Service::Action#initialize (method)">#initialize</a></span>
|
178
|
+
<small>Simple::Service::Action</small>
|
195
179
|
</div>
|
196
180
|
</li>
|
197
181
|
|
198
182
|
|
199
183
|
<li class="even ">
|
200
184
|
<div class="item">
|
201
|
-
<span class='object_link'><a href="Simple/Service/
|
202
|
-
<small>Simple::Service::
|
185
|
+
<span class='object_link'><a href="Simple/Service/Action/Comment.html#initialize-instance_method" title="Simple::Service::Action::Comment#initialize (method)">#initialize</a></span>
|
186
|
+
<small>Simple::Service::Action::Comment</small>
|
203
187
|
</div>
|
204
188
|
</li>
|
205
189
|
|
206
190
|
|
207
191
|
<li class="odd ">
|
208
192
|
<div class="item">
|
209
|
-
<span class='object_link'><a href="Simple/Service/Action/
|
210
|
-
<small>Simple::Service::Action::
|
193
|
+
<span class='object_link'><a href="Simple/Service/Action/Parameter.html#initialize-instance_method" title="Simple::Service::Action::Parameter#initialize (method)">#initialize</a></span>
|
194
|
+
<small>Simple::Service::Action::Parameter</small>
|
211
195
|
</div>
|
212
196
|
</li>
|
213
197
|
|
214
198
|
|
215
199
|
<li class="even ">
|
216
200
|
<div class="item">
|
217
|
-
<span class='object_link'><a href="Simple/Service/
|
218
|
-
<small>Simple::Service::
|
201
|
+
<span class='object_link'><a href="Simple/Service/ContextReadOnlyError.html#initialize-instance_method" title="Simple::Service::ContextReadOnlyError#initialize (method)">#initialize</a></span>
|
202
|
+
<small>Simple::Service::ContextReadOnlyError</small>
|
219
203
|
</div>
|
220
204
|
</li>
|
221
205
|
|
@@ -230,37 +214,29 @@
|
|
230
214
|
|
231
215
|
<li class="even ">
|
232
216
|
<div class="item">
|
233
|
-
<span class='object_link'><a href="Simple/Service/
|
234
|
-
<small>Simple::Service::
|
217
|
+
<span class='object_link'><a href="Simple/Service/NoSuchAction.html#initialize-instance_method" title="Simple::Service::NoSuchAction#initialize (method)">#initialize</a></span>
|
218
|
+
<small>Simple::Service::NoSuchAction</small>
|
235
219
|
</div>
|
236
220
|
</li>
|
237
221
|
|
238
222
|
|
239
223
|
<li class="odd ">
|
240
224
|
<div class="item">
|
241
|
-
<span class='object_link'><a href="Simple/Service/
|
242
|
-
<small>Simple::Service::
|
225
|
+
<span class='object_link'><a href="Simple/Service/MissingArguments.html#initialize-instance_method" title="Simple::Service::MissingArguments#initialize (method)">#initialize</a></span>
|
226
|
+
<small>Simple::Service::MissingArguments</small>
|
243
227
|
</div>
|
244
228
|
</li>
|
245
229
|
|
246
230
|
|
247
231
|
<li class="even ">
|
248
232
|
<div class="item">
|
249
|
-
<span class='object_link'><a href="Simple/Service/
|
250
|
-
<small>Simple::Service::
|
233
|
+
<span class='object_link'><a href="Simple/Service/Context.html#initialize-instance_method" title="Simple::Service::Context#initialize (method)">#initialize</a></span>
|
234
|
+
<small>Simple::Service::Context</small>
|
251
235
|
</div>
|
252
236
|
</li>
|
253
237
|
|
254
238
|
|
255
239
|
<li class="odd ">
|
256
|
-
<div class="item">
|
257
|
-
<span class='object_link'><a href="Simple/Service/Action/IndieHash.html#initialize-instance_method" title="Simple::Service::Action::IndieHash#initialize (method)">#initialize</a></span>
|
258
|
-
<small>Simple::Service::Action::IndieHash</small>
|
259
|
-
</div>
|
260
|
-
</li>
|
261
|
-
|
262
|
-
|
263
|
-
<li class="even ">
|
264
240
|
<div class="item">
|
265
241
|
<span class='object_link'><a href="Simple/Service.html#invoke-class_method" title="Simple::Service.invoke (method)">invoke</a></span>
|
266
242
|
<small>Simple::Service</small>
|
@@ -268,17 +244,9 @@
|
|
268
244
|
</li>
|
269
245
|
|
270
246
|
|
271
|
-
<li class="odd ">
|
272
|
-
<div class="item">
|
273
|
-
<span class='object_link'><a href="Simple/Service/Action.html#invoke-instance_method" title="Simple::Service::Action#invoke (method)">#invoke</a></span>
|
274
|
-
<small>Simple::Service::Action</small>
|
275
|
-
</div>
|
276
|
-
</li>
|
277
|
-
|
278
|
-
|
279
247
|
<li class="even ">
|
280
248
|
<div class="item">
|
281
|
-
<span class='object_link'><a href="Simple/Service/Action.html#
|
249
|
+
<span class='object_link'><a href="Simple/Service/Action.html#invoke-instance_method" title="Simple::Service::Action#invoke (method)">#invoke</a></span>
|
282
250
|
<small>Simple::Service::Action</small>
|
283
251
|
</div>
|
284
252
|
</li>
|
@@ -286,28 +254,12 @@
|
|
286
254
|
|
287
255
|
<li class="odd ">
|
288
256
|
<div class="item">
|
289
|
-
<span class='object_link'><a href="Simple/Service.html#
|
257
|
+
<span class='object_link'><a href="Simple/Service.html#invoke3-class_method" title="Simple::Service.invoke3 (method)">invoke3</a></span>
|
290
258
|
<small>Simple::Service</small>
|
291
259
|
</div>
|
292
260
|
</li>
|
293
261
|
|
294
262
|
|
295
|
-
<li class="even ">
|
296
|
-
<div class="item">
|
297
|
-
<span class='object_link'><a href="Simple/Service/Action/IndieHash.html#key%3F-instance_method" title="Simple::Service::Action::IndieHash#key? (method)">#key?</a></span>
|
298
|
-
<small>Simple::Service::Action::IndieHash</small>
|
299
|
-
</div>
|
300
|
-
</li>
|
301
|
-
|
302
|
-
|
303
|
-
<li class="odd ">
|
304
|
-
<div class="item">
|
305
|
-
<span class='object_link'><a href="Simple/Service/Action/IndieHash.html#keys-instance_method" title="Simple::Service::Action::IndieHash#keys (method)">#keys</a></span>
|
306
|
-
<small>Simple::Service::Action::IndieHash</small>
|
307
|
-
</div>
|
308
|
-
</li>
|
309
|
-
|
310
|
-
|
311
263
|
<li class="even ">
|
312
264
|
<div class="item">
|
313
265
|
<span class='object_link'><a href="Simple/Service/Action/Parameter.html#keyword%3F-instance_method" title="Simple::Service::Action::Parameter#keyword? (method)">#keyword?</a></span>
|
@@ -326,40 +278,40 @@
|
|
326
278
|
|
327
279
|
<li class="even ">
|
328
280
|
<div class="item">
|
329
|
-
<span class='object_link'><a href="Simple/Service/
|
330
|
-
<small>Simple::Service::
|
281
|
+
<span class='object_link'><a href="Simple/Service/Context.html#merge-instance_method" title="Simple::Service::Context#merge (method)">#merge</a></span>
|
282
|
+
<small>Simple::Service::Context</small>
|
331
283
|
</div>
|
332
284
|
</li>
|
333
285
|
|
334
286
|
|
335
287
|
<li class="odd ">
|
336
288
|
<div class="item">
|
337
|
-
<span class='object_link'><a href="Simple/Service/
|
338
|
-
<small>Simple::Service::
|
289
|
+
<span class='object_link'><a href="Simple/Service/Action.html#name-instance_method" title="Simple::Service::Action#name (method)">#name</a></span>
|
290
|
+
<small>Simple::Service::Action</small>
|
339
291
|
</div>
|
340
292
|
</li>
|
341
293
|
|
342
294
|
|
343
295
|
<li class="even ">
|
344
296
|
<div class="item">
|
345
|
-
<span class='object_link'><a href="Simple/Service/
|
346
|
-
<small>Simple::Service::
|
297
|
+
<span class='object_link'><a href="Simple/Service/NoSuchAction.html#name-instance_method" title="Simple::Service::NoSuchAction#name (method)">#name</a></span>
|
298
|
+
<small>Simple::Service::NoSuchAction</small>
|
347
299
|
</div>
|
348
300
|
</li>
|
349
301
|
|
350
302
|
|
351
303
|
<li class="odd ">
|
352
304
|
<div class="item">
|
353
|
-
<span class='object_link'><a href="Simple/Service/Action.html#name-instance_method" title="Simple::Service::Action#name (method)">#name</a></span>
|
354
|
-
<small>Simple::Service::Action</small>
|
305
|
+
<span class='object_link'><a href="Simple/Service/Action/Parameter.html#name-instance_method" title="Simple::Service::Action::Parameter#name (method)">#name</a></span>
|
306
|
+
<small>Simple::Service::Action::Parameter</small>
|
355
307
|
</div>
|
356
308
|
</li>
|
357
309
|
|
358
310
|
|
359
311
|
<li class="even ">
|
360
312
|
<div class="item">
|
361
|
-
<span class='object_link'><a href="Simple/Service/
|
362
|
-
<small>Simple::Service::
|
313
|
+
<span class='object_link'><a href="Simple/Service/Action/MethodReflection.html#parameters-instance_method" title="Simple::Service::Action::MethodReflection#parameters (method)">#parameters</a></span>
|
314
|
+
<small>Simple::Service::Action::MethodReflection</small>
|
363
315
|
</div>
|
364
316
|
</li>
|
365
317
|
|
@@ -374,31 +326,31 @@
|
|
374
326
|
|
375
327
|
<li class="even ">
|
376
328
|
<div class="item">
|
377
|
-
<span class='object_link'><a href="Simple/Service/Action
|
378
|
-
<small>Simple::Service::Action
|
329
|
+
<span class='object_link'><a href="Simple/Service/Action.html#parameters-instance_method" title="Simple::Service::Action#parameters (method)">#parameters</a></span>
|
330
|
+
<small>Simple::Service::Action</small>
|
379
331
|
</div>
|
380
332
|
</li>
|
381
333
|
|
382
334
|
|
383
335
|
<li class="odd ">
|
384
336
|
<div class="item">
|
385
|
-
<span class='object_link'><a href="Simple/Service/Action.html#
|
386
|
-
<small>Simple::Service::Action</small>
|
337
|
+
<span class='object_link'><a href="Simple/Service/Action/Comment/Extractor.html#parse_source-instance_method" title="Simple::Service::Action::Comment::Extractor#parse_source (method)">#parse_source</a></span>
|
338
|
+
<small>Simple::Service::Action::Comment::Extractor</small>
|
387
339
|
</div>
|
388
340
|
</li>
|
389
341
|
|
390
342
|
|
391
343
|
<li class="even ">
|
392
344
|
<div class="item">
|
393
|
-
<span class='object_link'><a href="Simple/Service/Action/
|
394
|
-
<small>Simple::Service::Action::
|
345
|
+
<span class='object_link'><a href="Simple/Service/Action/Parameter.html#positional%3F-instance_method" title="Simple::Service::Action::Parameter#positional? (method)">#positional?</a></span>
|
346
|
+
<small>Simple::Service::Action::Parameter</small>
|
395
347
|
</div>
|
396
348
|
</li>
|
397
349
|
|
398
350
|
|
399
351
|
<li class="odd ">
|
400
352
|
<div class="item">
|
401
|
-
<span class='object_link'><a href="Simple/Service/Action/Parameter.html#
|
353
|
+
<span class='object_link'><a href="Simple/Service/Action/Parameter.html#reflect_on_method-class_method" title="Simple::Service::Action::Parameter.reflect_on_method (method)">reflect_on_method</a></span>
|
402
354
|
<small>Simple::Service::Action::Parameter</small>
|
403
355
|
</div>
|
404
356
|
</li>
|
@@ -406,7 +358,7 @@
|
|
406
358
|
|
407
359
|
<li class="even ">
|
408
360
|
<div class="item">
|
409
|
-
<span class='object_link'><a href="Simple/Service/Action/Parameter.html#
|
361
|
+
<span class='object_link'><a href="Simple/Service/Action/Parameter.html#required%3F-instance_method" title="Simple::Service::Action::Parameter#required? (method)">#required?</a></span>
|
410
362
|
<small>Simple::Service::Action::Parameter</small>
|
411
363
|
</div>
|
412
364
|
</li>
|
@@ -414,8 +366,8 @@
|
|
414
366
|
|
415
367
|
<li class="odd ">
|
416
368
|
<div class="item">
|
417
|
-
<span class='object_link'><a href="Simple/Service/Action
|
418
|
-
<small>Simple::Service::Action
|
369
|
+
<span class='object_link'><a href="Simple/Service/Action.html#service-instance_method" title="Simple::Service::Action#service (method)">#service</a></span>
|
370
|
+
<small>Simple::Service::Action</small>
|
419
371
|
</div>
|
420
372
|
</li>
|
421
373
|
|
@@ -430,31 +382,31 @@
|
|
430
382
|
|
431
383
|
<li class="odd ">
|
432
384
|
<div class="item">
|
433
|
-
<span class='object_link'><a href="Simple/Service
|
434
|
-
<small>Simple::Service
|
385
|
+
<span class='object_link'><a href="Simple/Service.html#service%3F-class_method" title="Simple::Service.service? (method)">service?</a></span>
|
386
|
+
<small>Simple::Service</small>
|
435
387
|
</div>
|
436
388
|
</li>
|
437
389
|
|
438
390
|
|
439
391
|
<li class="even ">
|
440
392
|
<div class="item">
|
441
|
-
<span class='object_link'><a href="Simple/Service.html#
|
442
|
-
<small>Simple::Service</small>
|
393
|
+
<span class='object_link'><a href="Simple/Service/Action/Comment.html#short-instance_method" title="Simple::Service::Action::Comment#short (method)">#short</a></span>
|
394
|
+
<small>Simple::Service::Action::Comment</small>
|
443
395
|
</div>
|
444
396
|
</li>
|
445
397
|
|
446
398
|
|
447
399
|
<li class="odd ">
|
448
400
|
<div class="item">
|
449
|
-
<span class='object_link'><a href="Simple/Service/Action
|
450
|
-
<small>Simple::Service::Action
|
401
|
+
<span class='object_link'><a href="Simple/Service/Action.html#short_description-instance_method" title="Simple::Service::Action#short_description (method)">#short_description</a></span>
|
402
|
+
<small>Simple::Service::Action</small>
|
451
403
|
</div>
|
452
404
|
</li>
|
453
405
|
|
454
406
|
|
455
407
|
<li class="even ">
|
456
408
|
<div class="item">
|
457
|
-
<span class='object_link'><a href="Simple/Service/Action.html#
|
409
|
+
<span class='object_link'><a href="Simple/Service/Action.html#source_location-instance_method" title="Simple::Service::Action#source_location (method)">#source_location</a></span>
|
458
410
|
<small>Simple::Service::Action</small>
|
459
411
|
</div>
|
460
412
|
</li>
|
@@ -462,7 +414,7 @@
|
|
462
414
|
|
463
415
|
<li class="odd ">
|
464
416
|
<div class="item">
|
465
|
-
<span class='object_link'><a href="Simple/Service/Action.html#
|
417
|
+
<span class='object_link'><a href="Simple/Service/Action.html#to_s-instance_method" title="Simple::Service::Action#to_s (method)">#to_s</a></span>
|
466
418
|
<small>Simple::Service::Action</small>
|
467
419
|
</div>
|
468
420
|
</li>
|
@@ -493,14 +445,6 @@
|
|
493
445
|
|
494
446
|
|
495
447
|
<li class="odd ">
|
496
|
-
<div class="item">
|
497
|
-
<span class='object_link'><a href="Simple/Service/Action.html#to_s-instance_method" title="Simple::Service::Action#to_s (method)">#to_s</a></span>
|
498
|
-
<small>Simple::Service::Action</small>
|
499
|
-
</div>
|
500
|
-
</li>
|
501
|
-
|
502
|
-
|
503
|
-
<li class="even ">
|
504
448
|
<div class="item">
|
505
449
|
<span class='object_link'><a href="Simple/Service/Action/Parameter.html#variadic%3F-instance_method" title="Simple::Service::Action::Parameter#variadic? (method)">#variadic?</a></span>
|
506
450
|
<small>Simple::Service::Action::Parameter</small>
|
@@ -508,7 +452,7 @@
|
|
508
452
|
</li>
|
509
453
|
|
510
454
|
|
511
|
-
<li class="
|
455
|
+
<li class="even ">
|
512
456
|
<div class="item">
|
513
457
|
<span class='object_link'><a href="Simple/Service.html#verify_service!-class_method" title="Simple::Service.verify_service! (method)">verify_service!</a></span>
|
514
458
|
<small>Simple::Service</small>
|
@@ -516,7 +460,7 @@
|
|
516
460
|
</li>
|
517
461
|
|
518
462
|
|
519
|
-
<li class="
|
463
|
+
<li class="odd ">
|
520
464
|
<div class="item">
|
521
465
|
<span class='object_link'><a href="Simple/Service/GemHelper.html#version-instance_method" title="Simple::Service::GemHelper#version (method)">#version</a></span>
|
522
466
|
<small>Simple::Service::GemHelper</small>
|
@@ -524,7 +468,7 @@
|
|
524
468
|
</li>
|
525
469
|
|
526
470
|
|
527
|
-
<li class="
|
471
|
+
<li class="even ">
|
528
472
|
<div class="item">
|
529
473
|
<span class='object_link'><a href="Simple/Service.html#with_context-class_method" title="Simple::Service.with_context (method)">with_context</a></span>
|
530
474
|
<small>Simple::Service</small>
|
@@ -100,7 +100,7 @@
|
|
100
100
|
</div>
|
101
101
|
|
102
102
|
<div id="footer">
|
103
|
-
Generated on
|
103
|
+
Generated on Wed Dec 4 22:57:12 2019 by
|
104
104
|
<a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
|
105
105
|
0.9.20 (ruby-2.5.1).
|
106
106
|
</div>
|
@@ -6,7 +6,7 @@ class ::Simple::Service::Action::Comment # @private
|
|
6
6
|
def self.extract(action:)
|
7
7
|
file, line = action.source_location
|
8
8
|
lines = Extractor.extract_comment_lines(file: file, before_line: line)
|
9
|
-
full = lines[2
|
9
|
+
full = lines[2..].join("\n") if lines.length >= 2
|
10
10
|
new short: lines[0], full: full
|
11
11
|
end
|
12
12
|
|
@@ -1,4 +1,5 @@
|
|
1
1
|
module Simple::Service
|
2
|
+
# rubocop:disable Lint/EmptyClass
|
2
3
|
class Action
|
3
4
|
end
|
4
5
|
end
|
@@ -80,6 +81,12 @@ module Simple::Service
|
|
80
81
|
positionals = build_positional_arguments(args, flags)
|
81
82
|
keywords = build_keyword_arguments(args.merge(flags))
|
82
83
|
|
84
|
+
# check for extra flags
|
85
|
+
extra_flags = (flags.keys - keywords.keys.map(&:to_s)).map { |flag| "--#{flag}" }
|
86
|
+
unless extra_flags.empty?
|
87
|
+
raise Simple::Service::ArgumentError, "Unknown flag(s): #{extra_flags.join(", ")}."
|
88
|
+
end
|
89
|
+
|
83
90
|
service_instance = Object.new
|
84
91
|
service_instance.extend service
|
85
92
|
|
@@ -114,7 +121,7 @@ module Simple::Service
|
|
114
121
|
|
115
122
|
# Note that +keys+ now only contains names of keyword arguments that actually exist.
|
116
123
|
# This is therefore not a way to DOS this process.
|
117
|
-
|
124
|
+
keys.map(&:to_sym).zip(values).to_h
|
118
125
|
end
|
119
126
|
|
120
127
|
def variadic_parameter
|
@@ -164,7 +171,7 @@ module Simple::Service
|
|
164
171
|
# we otherwise raise a ExtraArguments exception.
|
165
172
|
case ary.length <=> positional_names.length
|
166
173
|
when 1 # i.e. ary.length > positional_names.length
|
167
|
-
extra_arguments = ary[positional_names.length
|
174
|
+
extra_arguments = ary[positional_names.length..]
|
168
175
|
ary = ary[0..positional_names.length]
|
169
176
|
|
170
177
|
if !extra_arguments.empty? && !variadic_parameter
|
@@ -179,7 +186,7 @@ module Simple::Service
|
|
179
186
|
end
|
180
187
|
|
181
188
|
# Build a hash with the existing_positional_names and the values from the array.
|
182
|
-
hsh =
|
189
|
+
hsh = existing_positional_names.zip(ary).to_h
|
183
190
|
|
184
191
|
# Add the variadic_parameter, if any.
|
185
192
|
hsh[variadic_parameter.name] = extra_arguments if variadic_parameter
|
@@ -2,8 +2,10 @@ module Simple::Service
|
|
2
2
|
# Will be raised by ::Simple::Service.action.
|
3
3
|
class NoSuchAction < ::ArgumentError
|
4
4
|
attr_reader :service, :name
|
5
|
+
|
5
6
|
def initialize(service, name)
|
6
7
|
@service, @name = service, name
|
8
|
+
super()
|
7
9
|
end
|
8
10
|
|
9
11
|
def to_s
|
@@ -22,6 +24,7 @@ module Simple::Service
|
|
22
24
|
|
23
25
|
def initialize(action, parameters)
|
24
26
|
@action, @parameters = action, parameters
|
27
|
+
super()
|
25
28
|
end
|
26
29
|
|
27
30
|
def to_s
|
@@ -35,6 +38,7 @@ module Simple::Service
|
|
35
38
|
|
36
39
|
def initialize(action, arguments)
|
37
40
|
@action, @arguments = action, arguments
|
41
|
+
super()
|
38
42
|
end
|
39
43
|
|
40
44
|
def to_s
|
@@ -43,9 +47,6 @@ module Simple::Service
|
|
43
47
|
end
|
44
48
|
end
|
45
49
|
|
46
|
-
class ContextMissingError < ::StandardError
|
47
|
-
end
|
48
|
-
|
49
50
|
class ContextReadOnlyError < ::StandardError
|
50
51
|
def initialize(key)
|
51
52
|
super "Cannot overwrite existing context setting #{key.inspect}"
|