simple-service 0.1.5 → 0.1.6

Sign up to get free protection for your applications and to get access to all the features.
@@ -100,7 +100,7 @@
100
100
  </div>
101
101
 
102
102
  <div id="footer">
103
- Generated on Tue Dec 3 13:46:26 2019 by
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>
@@ -2,6 +2,7 @@ module Simple # @private
2
2
  end
3
3
 
4
4
  require "expectation"
5
+ require "logger"
5
6
 
6
7
  require_relative "service/errors"
7
8
  require_relative "service/action"
@@ -31,11 +32,14 @@ require_relative "service/version"
31
32
  # end
32
33
  #
33
34
  # 2. <em>Discover services:</em> To discover services in a service module use the #actions method. This returns a Hash
34
- # of actions. [TODO] why a Hash?
35
+ # of actions.
35
36
  #
36
37
  # Simple::Service.actions(GodMode)
37
38
  # => {:build_universe=>#<Simple::Service::Action...>, ...}
38
39
  #
40
+ # TODO: why a Hash? It feels much better if Simple::Service.actions returns an array of names.
41
+ #
42
+ #
39
43
  # 3. <em>Invoke a service:</em> run <tt>Simple::Service.invoke3</tt> or <tt>Simple::Service.invoke</tt>. You must set a context first.
40
44
  #
41
45
  # Simple::Service.with_context do
@@ -44,8 +48,25 @@ require_relative "service/version"
44
48
  # => 42
45
49
  #
46
50
  module Simple::Service
51
+ module ServiceExpectations
52
+ def expect!(*args, &block)
53
+ Expectation.expect!(*args, &block)
54
+ rescue ::Expectation::Error => e
55
+ raise ArgumentError, e.to_s
56
+ end
57
+ end
58
+
47
59
  def self.included(klass) # @private
48
60
  klass.extend ClassMethods
61
+ klass.include ServiceExpectations
62
+ end
63
+
64
+ def self.logger
65
+ @logger ||= ::Logger.new(STDOUT)
66
+ end
67
+
68
+ def self.logger=(logger)
69
+ @logger = logger
49
70
  end
50
71
 
51
72
  # returns true if the passed in object is a service module.
@@ -1,3 +1,5 @@
1
+ # rubocop:disable Metrics/AbcSize
2
+
1
3
  # returns the comment for an action
2
4
  class ::Simple::Service::Action::Comment # @private
3
5
  attr_reader :short
@@ -15,7 +15,7 @@ describe "Simple::Service.invoke" do
15
15
  let(:action) { nil }
16
16
 
17
17
  # a shortcut
18
- def invoke!(args = {}, flags: {})
18
+ def invoke!(args: {}, flags: {})
19
19
  @actual = ::Simple::Service.invoke(service, action, args: args, flags: flags)
20
20
  # rescue ::StandardError => e
21
21
  rescue ::Simple::Service::ArgumentError => e
@@ -42,7 +42,14 @@ describe "Simple::Service.invoke" do
42
42
 
43
43
  context "calling with extra named args" do
44
44
  it "ignores extra args" do
45
- invoke!("foo" => "foo", "bar" => "bar")
45
+ invoke!(args: { "foo" => "foo", "bar" => "bar" })
46
+ expect(actual).to eq("service2 return")
47
+ end
48
+ end
49
+
50
+ context "calling with extra flags" do
51
+ it "ignores extra args" do
52
+ invoke!(flags: { "foo" => "foo", "bar" => "bar" })
46
53
  expect(actual).to eq("service2 return")
47
54
  end
48
55
  end
@@ -67,21 +74,28 @@ describe "Simple::Service.invoke" do
67
74
 
68
75
  context "with the required number of args" do
69
76
  it "runs" do
70
- invoke!("a" => "foo", "b" => "bar")
77
+ invoke!(args: { "a" => "foo", "b" => "bar" })
78
+ expect(actual).to eq(["foo", "bar", "speed-of-light", 2.781])
79
+ end
80
+ end
81
+
82
+ context "with the required number of args and flags" do
83
+ it "merges flags and args to provide arguments" do
84
+ invoke!(args: { "a" => "foo" }, flags: { "b" => "bar" })
71
85
  expect(actual).to eq(["foo", "bar", "speed-of-light", 2.781])
72
86
  end
73
87
  end
74
88
 
75
89
  context "with the allowed number of args" do
76
90
  it "runs" do
77
- invoke!("a" => "foo", "b" => "bar", "c" => "baz", "e" => "number4")
91
+ invoke!(args: { "a" => "foo", "b" => "bar", "c" => "baz", "e" => "number4" })
78
92
  expect(actual).to eq(%w[foo bar baz number4])
79
93
  end
80
94
  end
81
95
 
82
96
  context "calling with extra named args" do
83
97
  it "ignores extra args" do
84
- invoke!("a" => "foo", "b" => "bar", "c" => "baz", "e" => "number4", "extra3" => 3)
98
+ invoke!(args: { "a" => "foo", "b" => "bar", "c" => "baz", "e" => "number4", "extra3" => 3 })
85
99
  expect(actual).to eq(%w[foo bar baz number4])
86
100
  end
87
101
  end
@@ -106,21 +120,21 @@ describe "Simple::Service.invoke" do
106
120
 
107
121
  context "with the required number of args" do
108
122
  it "runs" do
109
- invoke!("a" => "foo", "b" => "bar")
123
+ invoke!(args: { "a" => "foo", "b" => "bar" })
110
124
  expect(actual).to eq(["foo", "bar", "speed-of-light", 2.781])
111
125
  end
112
126
  end
113
127
 
114
128
  context "with the allowed number of args" do
115
129
  it "runs" do
116
- invoke!("a" => "foo", "b" => "bar", "c" => "baz", "e" => "number4")
130
+ invoke!(args: { "a" => "foo", "b" => "bar", "c" => "baz", "e" => "number4" })
117
131
  expect(actual).to eq(%w[foo bar baz number4])
118
132
  end
119
133
  end
120
134
 
121
135
  context "with extra named args" do
122
136
  it "ignores extra args" do
123
- invoke!("a" => "foo", "b" => "bar", "c" => "baz", "extra3" => 3)
137
+ invoke!(args: { "a" => "foo", "b" => "bar", "c" => "baz", "extra3" => 3 })
124
138
  expect(actual).to eq(["foo", "bar", "baz", 2.781])
125
139
  end
126
140
  end
@@ -144,23 +158,80 @@ describe "Simple::Service.invoke" do
144
158
 
145
159
  context "with the required number of args" do
146
160
  it "runs" do
147
- invoke!("a" => "foo")
161
+ invoke!(args: { "a" => "foo" })
148
162
  expect(actual).to eq(["foo", "default-b", "speed-of-light", 2.781])
149
163
  end
150
164
  end
151
165
 
152
166
  context "with the allowed number of args" do
153
167
  it "runs" do
154
- invoke!("a" => "foo", "b" => "bar", "c" => "baz", "e" => "number4")
168
+ invoke!(args: { "a" => "foo", "b" => "bar", "c" => "baz", "e" => "number4" })
155
169
  expect(actual).to eq(%w[foo bar baz number4])
156
170
  end
157
171
  end
158
172
 
159
173
  context "with extra named args" do
160
174
  it "ignores extra args" do
161
- invoke!("a" => "foo", "b" => "bar", "c" => "baz", "e" => "number4", "extra3" => 3)
175
+ invoke!(args: { "a" => "foo", "b" => "bar", "c" => "baz", "e" => "number4", "extra3" => 3 })
162
176
  expect(actual).to eq(["foo", "bar", "baz", "number4"])
163
177
  end
164
178
  end
165
179
  end
180
+
181
+ context "calling an action w/mixed and variadic parameters" do
182
+ # reminder: this is the definition of variadic_params
183
+ #
184
+ # def variadic_params(a, b = "queen bee", *args, e: 2.781)
185
+ # [a, b, args, e]
186
+ # end
187
+
188
+ let(:action) { :variadic_params }
189
+
190
+ context "without args" do
191
+ it "raises MissingArguments" do
192
+ invoke!
193
+ expect(actual).to be_a(::Simple::Service::MissingArguments)
194
+ end
195
+ end
196
+
197
+ context "with the required number of args" do
198
+ it "runs" do
199
+ invoke!(args: { "a" => "foo" })
200
+ expect(actual).to eq(["foo", "queen bee", [], 2.781])
201
+ end
202
+ end
203
+
204
+ context "with the allowed number of args" do
205
+ it "runs" do
206
+ invoke!(args: { "a" => "foo", "b" => "bar", "args" => ["baz"] }, flags: { "e" => "number4" })
207
+ expect(actual).to eq(["foo", "bar", ["baz"], "number4"])
208
+ end
209
+ end
210
+
211
+ context "with variadic args" do
212
+ it "sends the variadic args from the args: parameter" do
213
+ invoke!(args: { "a" => "foo", "b" => "bar", "args" => ["baz", "extra"] }, flags: { "e" => "number4", "extra3" => 2 })
214
+ expect(actual).to eq(["foo", "bar", ["baz", "extra"], "number4"])
215
+ end
216
+
217
+ it "sends the variadic args from the flags: parameter" do
218
+ invoke!(args: { "a" => "foo", "b" => "bar" }, flags: { "args" => ["baz", "extra"], "e" => "number4", "extra3" => 2 })
219
+ expect(actual).to eq(["foo", "bar", ["baz", "extra"], "number4"])
220
+ end
221
+ end
222
+ end
223
+
224
+ describe "calling with symbolized Hashes" do
225
+ it "raises ArgumentError" do
226
+ hsh = { a: "foo", "b" => "KJH" }
227
+
228
+ expect do
229
+ invoke!(args: hsh)
230
+ end.to raise_error(Expectation::Matcher::Mismatch)
231
+
232
+ expect do
233
+ invoke!(flags: hsh)
234
+ end.to raise_error(Expectation::Matcher::Mismatch)
235
+ end
236
+ end
166
237
  end
@@ -1,5 +1,7 @@
1
1
  require "spec_helper"
2
2
 
3
+ # rubocop:disable Style/WordArray
4
+
3
5
  describe "Simple::Service" do
4
6
  context "when running against a NoService module" do
5
7
  let(:service) { NoServiceModule }
@@ -76,7 +78,7 @@ describe "Simple::Service" do
76
78
  end
77
79
  end
78
80
 
79
- describe '.invoke3' do
81
+ describe ".invoke3" do
80
82
  def invoke3
81
83
  Simple::Service.invoke3(service, :service1, "my_a", "my_b", d: "my_d")
82
84
  end
@@ -146,11 +148,11 @@ describe "Simple::Service" do
146
148
  it "calls Action#invoke with the right arguments" do
147
149
  expected = ["bar-value", "baz-value"]
148
150
  ::Simple::Service.with_context do
149
- expect(invoke3("bar-value", baz: "baz-value")).to eq(expected)
150
- expect(invoke3(bar: "bar-value", baz: "baz-value")).to eq(expected)
151
- expect(invoke(args: ["bar-value"], flags: { "baz" => "baz-value" })).to eq(expected)
152
- expect(invoke(args: { "bar" => "bar-value", "baz" => "baz-value" })).to eq(expected)
153
- end
151
+ expect(invoke3("bar-value", baz: "baz-value")).to eq(expected)
152
+ expect(invoke3(bar: "bar-value", baz: "baz-value")).to eq(expected)
153
+ expect(invoke(args: ["bar-value"], flags: { "baz" => "baz-value" })).to eq(expected)
154
+ expect(invoke(args: { "bar" => "bar-value", "baz" => "baz-value" })).to eq(expected)
155
+ end
154
156
  end
155
157
  end
156
158
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: simple-service
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.5
4
+ version: 0.1.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - radiospiel
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-12-04 00:00:00.000000000 Z
11
+ date: 2019-12-25 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: expectation
@@ -37,6 +37,7 @@ files:
37
37
  - Makefile
38
38
  - README.md
39
39
  - Rakefile
40
+ - TODO.txt
40
41
  - VERSION
41
42
  - bin/bundle
42
43
  - bin/console
@@ -47,7 +48,6 @@ files:
47
48
  - doc/Simple/Service/Action.html
48
49
  - doc/Simple/Service/Action/Comment.html
49
50
  - doc/Simple/Service/Action/Comment/Extractor.html
50
- - doc/Simple/Service/Action/IndieHash.html
51
51
  - doc/Simple/Service/Action/MethodReflection.html
52
52
  - doc/Simple/Service/Action/Parameter.html
53
53
  - doc/Simple/Service/ArgumentError.html
@@ -65,6 +65,7 @@ files:
65
65
  - doc/css/full_list.css
66
66
  - doc/css/style.css
67
67
  - doc/file.README.html
68
+ - doc/file.TODO.html
68
69
  - doc/file_list.html
69
70
  - doc/frames.html
70
71
  - doc/index.html
@@ -114,7 +115,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
114
115
  - !ruby/object:Gem::Version
115
116
  version: '0'
116
117
  requirements: []
117
- rubygems_version: 3.0.4
118
+ rubygems_version: 3.0.6
118
119
  signing_key:
119
120
  specification_version: 4
120
121
  summary: Pretty simple and somewhat abstract service description
@@ -1,506 +0,0 @@
1
- <!DOCTYPE html>
2
- <html>
3
- <head>
4
- <meta charset="utf-8">
5
- <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
- <title>
7
- Class: Simple::Service::Action::IndieHash
8
-
9
- &mdash; Documentation by YARD 0.9.20
10
-
11
- </title>
12
-
13
- <link rel="stylesheet" href="../../../css/style.css" type="text/css" charset="utf-8" />
14
-
15
- <link rel="stylesheet" href="../../../css/common.css" type="text/css" charset="utf-8" />
16
-
17
- <script type="text/javascript" charset="utf-8">
18
- pathId = "Simple::Service::Action::IndieHash";
19
- relpath = '../../../';
20
- </script>
21
-
22
-
23
- <script type="text/javascript" charset="utf-8" src="../../../js/jquery.js"></script>
24
-
25
- <script type="text/javascript" charset="utf-8" src="../../../js/app.js"></script>
26
-
27
-
28
- </head>
29
- <body>
30
- <div class="nav_wrap">
31
- <iframe id="nav" src="../../../class_list.html?1"></iframe>
32
- <div id="resizer"></div>
33
- </div>
34
-
35
- <div id="main" tabindex="-1">
36
- <div id="header">
37
- <div id="menu">
38
-
39
- <a href="../../../_index.html">Index (I)</a> &raquo;
40
- <span class='title'><span class='object_link'><a href="../../../Simple.html" title="Simple (module)">Simple</a></span></span> &raquo; <span class='title'><span class='object_link'><a href="../../Service.html" title="Simple::Service (module)">Service</a></span></span> &raquo; <span class='title'><span class='object_link'><a href="../Action.html" title="Simple::Service::Action (class)">Action</a></span></span>
41
- &raquo;
42
- <span class="title">IndieHash</span>
43
-
44
- </div>
45
-
46
- <div id="search">
47
-
48
- <a class="full_list_link" id="class_list_link"
49
- href="../../../class_list.html">
50
-
51
- <svg width="24" height="24">
52
- <rect x="0" y="4" width="24" height="4" rx="1" ry="1"></rect>
53
- <rect x="0" y="12" width="24" height="4" rx="1" ry="1"></rect>
54
- <rect x="0" y="20" width="24" height="4" rx="1" ry="1"></rect>
55
- </svg>
56
- </a>
57
-
58
- </div>
59
- <div class="clear"></div>
60
- </div>
61
-
62
- <div id="content"><h1>Class: Simple::Service::Action::IndieHash
63
-
64
-
65
-
66
- </h1>
67
- <div class="box_info">
68
-
69
- <dl>
70
- <dt>Inherits:</dt>
71
- <dd>
72
- <span class="inheritName">Object</span>
73
-
74
- <ul class="fullTree">
75
- <li>Object</li>
76
-
77
- <li class="next">Simple::Service::Action::IndieHash</li>
78
-
79
- </ul>
80
- <a href="#" class="inheritanceTree">show all</a>
81
-
82
- </dd>
83
- </dl>
84
-
85
-
86
-
87
-
88
-
89
-
90
-
91
-
92
-
93
-
94
-
95
- <dl>
96
- <dt>Defined in:</dt>
97
- <dd>lib/simple/service/action/indie_hash.rb</dd>
98
- </dl>
99
-
100
- </div>
101
-
102
- <h2>Overview</h2><div class="docstring">
103
- <div class="discussion">
104
-
105
- <p>The IndieHash class defines as much of the Hash interface as necessary for simple-service to successfully run.</p>
106
-
107
-
108
- </div>
109
- </div>
110
- <div class="tags">
111
-
112
-
113
- </div>
114
-
115
-
116
-
117
-
118
-
119
-
120
-
121
- <h2>
122
- Instance Method Summary
123
- <small><a href="#" class="summary_toggle">collapse</a></small>
124
- </h2>
125
-
126
- <ul class="summary">
127
-
128
- <li class="public ">
129
- <span class="summary_signature">
130
-
131
- <a href="#[]-instance_method" title="#[] (instance method)">#<strong>[]</strong>(sym) &#x21d2; Object </a>
132
-
133
-
134
-
135
- </span>
136
-
137
-
138
-
139
-
140
-
141
-
142
-
143
-
144
-
145
- <span class="summary_desc"><div class='inline'></div></span>
146
-
147
- </li>
148
-
149
-
150
- <li class="public ">
151
- <span class="summary_signature">
152
-
153
- <a href="#fetch_values-instance_method" title="#fetch_values (instance method)">#<strong>fetch_values</strong>(*keys) &#x21d2; Object </a>
154
-
155
-
156
-
157
- </span>
158
-
159
-
160
-
161
-
162
-
163
-
164
-
165
-
166
-
167
- <span class="summary_desc"><div class='inline'></div></span>
168
-
169
- </li>
170
-
171
-
172
- <li class="public ">
173
- <span class="summary_signature">
174
-
175
- <a href="#initialize-instance_method" title="#initialize (instance method)">#<strong>initialize</strong>(hsh) &#x21d2; IndieHash </a>
176
-
177
-
178
-
179
- </span>
180
-
181
-
182
- <span class="note title constructor">constructor</span>
183
-
184
-
185
-
186
-
187
-
188
-
189
-
190
-
191
- <span class="summary_desc"><div class='inline'>
192
- <p>A new instance of IndieHash.</p>
193
- </div></span>
194
-
195
- </li>
196
-
197
-
198
- <li class="public ">
199
- <span class="summary_signature">
200
-
201
- <a href="#key%3F-instance_method" title="#key? (instance method)">#<strong>key?</strong>(sym) &#x21d2; Boolean </a>
202
-
203
-
204
-
205
- </span>
206
-
207
-
208
-
209
-
210
-
211
-
212
-
213
-
214
-
215
- <span class="summary_desc"><div class='inline'></div></span>
216
-
217
- </li>
218
-
219
-
220
- <li class="public ">
221
- <span class="summary_signature">
222
-
223
- <a href="#keys-instance_method" title="#keys (instance method)">#<strong>keys</strong> &#x21d2; Object </a>
224
-
225
-
226
-
227
- </span>
228
-
229
-
230
-
231
-
232
-
233
-
234
-
235
-
236
-
237
- <span class="summary_desc"><div class='inline'></div></span>
238
-
239
- </li>
240
-
241
-
242
- <li class="public ">
243
- <span class="summary_signature">
244
-
245
- <a href="#merge-instance_method" title="#merge (instance method)">#<strong>merge</strong>(other_hsh) &#x21d2; Object </a>
246
-
247
-
248
-
249
- </span>
250
-
251
-
252
-
253
-
254
-
255
-
256
-
257
-
258
-
259
- <span class="summary_desc"><div class='inline'></div></span>
260
-
261
- </li>
262
-
263
-
264
- </ul>
265
-
266
-
267
- <div id="constructor_details" class="method_details_list">
268
- <h2>Constructor Details</h2>
269
-
270
- <div class="method_details first">
271
- <h3 class="signature first" id="initialize-instance_method">
272
-
273
- #<strong>initialize</strong>(hsh) &#x21d2; <tt><span class='object_link'><a href="" title="Simple::Service::Action::IndieHash (class)">IndieHash</a></span></tt>
274
-
275
-
276
-
277
-
278
-
279
- </h3><div class="docstring">
280
- <div class="discussion">
281
-
282
- <p>Returns a new instance of IndieHash</p>
283
-
284
-
285
- </div>
286
- </div>
287
- <div class="tags">
288
-
289
-
290
- </div><table class="source_code">
291
- <tr>
292
- <td>
293
- <pre class="lines">
294
-
295
-
296
- 5
297
- 6
298
- 7</pre>
299
- </td>
300
- <td>
301
- <pre class="code"><span class="info file"># File 'lib/simple/service/action/indie_hash.rb', line 5</span>
302
-
303
- <span class='kw'>def</span> <span class='id identifier rubyid_initialize'>initialize</span><span class='lparen'>(</span><span class='id identifier rubyid_hsh'>hsh</span><span class='rparen'>)</span>
304
- <span class='ivar'>@hsh</span> <span class='op'>=</span> <span class='id identifier rubyid_hsh'>hsh</span><span class='period'>.</span><span class='id identifier rubyid_each_with_object'>each_with_object</span><span class='lparen'>(</span><span class='lbrace'>{</span><span class='rbrace'>}</span><span class='rparen'>)</span> <span class='lbrace'>{</span> <span class='op'>|</span><span class='lparen'>(</span><span class='id identifier rubyid_k'>k</span><span class='comma'>,</span> <span class='id identifier rubyid_v'>v</span><span class='rparen'>)</span><span class='comma'>,</span> <span class='id identifier rubyid_h'>h</span><span class='op'>|</span> <span class='id identifier rubyid_h'>h</span><span class='lbracket'>[</span><span class='id identifier rubyid_k'>k</span><span class='period'>.</span><span class='id identifier rubyid_to_s'>to_s</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='id identifier rubyid_v'>v</span> <span class='rbrace'>}</span>
305
- <span class='kw'>end</span></pre>
306
- </td>
307
- </tr>
308
- </table>
309
- </div>
310
-
311
- </div>
312
-
313
-
314
- <div id="instance_method_details" class="method_details_list">
315
- <h2>Instance Method Details</h2>
316
-
317
-
318
- <div class="method_details first">
319
- <h3 class="signature first" id="[]-instance_method">
320
-
321
- #<strong>[]</strong>(sym) &#x21d2; <tt>Object</tt>
322
-
323
-
324
-
325
-
326
-
327
- </h3><table class="source_code">
328
- <tr>
329
- <td>
330
- <pre class="lines">
331
-
332
-
333
- 22
334
- 23
335
- 24</pre>
336
- </td>
337
- <td>
338
- <pre class="code"><span class="info file"># File 'lib/simple/service/action/indie_hash.rb', line 22</span>
339
-
340
- <span class='kw'>def</span> <span class='op'>[]</span><span class='lparen'>(</span><span class='id identifier rubyid_sym'>sym</span><span class='rparen'>)</span>
341
- <span class='ivar'>@hsh</span><span class='lbracket'>[</span><span class='id identifier rubyid_sym'>sym</span><span class='period'>.</span><span class='id identifier rubyid_to_s'>to_s</span><span class='rbracket'>]</span>
342
- <span class='kw'>end</span></pre>
343
- </td>
344
- </tr>
345
- </table>
346
- </div>
347
-
348
- <div class="method_details ">
349
- <h3 class="signature " id="fetch_values-instance_method">
350
-
351
- #<strong>fetch_values</strong>(*keys) &#x21d2; <tt>Object</tt>
352
-
353
-
354
-
355
-
356
-
357
- </h3><table class="source_code">
358
- <tr>
359
- <td>
360
- <pre class="lines">
361
-
362
-
363
- 13
364
- 14
365
- 15
366
- 16</pre>
367
- </td>
368
- <td>
369
- <pre class="code"><span class="info file"># File 'lib/simple/service/action/indie_hash.rb', line 13</span>
370
-
371
- <span class='kw'>def</span> <span class='id identifier rubyid_fetch_values'>fetch_values</span><span class='lparen'>(</span><span class='op'>*</span><span class='id identifier rubyid_keys'>keys</span><span class='rparen'>)</span>
372
- <span class='id identifier rubyid_keys'>keys</span> <span class='op'>=</span> <span class='id identifier rubyid_keys'>keys</span><span class='period'>.</span><span class='id identifier rubyid_map'>map</span><span class='lparen'>(</span><span class='op'>&amp;</span><span class='symbol'>:to_s</span><span class='rparen'>)</span>
373
- <span class='ivar'>@hsh</span><span class='period'>.</span><span class='id identifier rubyid_fetch_values'>fetch_values</span><span class='lparen'>(</span><span class='op'>*</span><span class='id identifier rubyid_keys'>keys</span><span class='rparen'>)</span>
374
- <span class='kw'>end</span></pre>
375
- </td>
376
- </tr>
377
- </table>
378
- </div>
379
-
380
- <div class="method_details ">
381
- <h3 class="signature " id="key?-instance_method">
382
-
383
- #<strong>key?</strong>(sym) &#x21d2; <tt>Boolean</tt>
384
-
385
-
386
-
387
-
388
-
389
- </h3><div class="docstring">
390
- <div class="discussion">
391
-
392
-
393
- </div>
394
- </div>
395
- <div class="tags">
396
-
397
- <p class="tag_title">Returns:</p>
398
- <ul class="return">
399
-
400
- <li>
401
-
402
-
403
- <span class='type'>(<tt>Boolean</tt>)</span>
404
-
405
-
406
-
407
- </li>
408
-
409
- </ul>
410
-
411
- </div><table class="source_code">
412
- <tr>
413
- <td>
414
- <pre class="lines">
415
-
416
-
417
- 18
418
- 19
419
- 20</pre>
420
- </td>
421
- <td>
422
- <pre class="code"><span class="info file"># File 'lib/simple/service/action/indie_hash.rb', line 18</span>
423
-
424
- <span class='kw'>def</span> <span class='id identifier rubyid_key?'>key?</span><span class='lparen'>(</span><span class='id identifier rubyid_sym'>sym</span><span class='rparen'>)</span>
425
- <span class='ivar'>@hsh</span><span class='period'>.</span><span class='id identifier rubyid_key?'>key?</span><span class='lparen'>(</span><span class='id identifier rubyid_sym'>sym</span><span class='period'>.</span><span class='id identifier rubyid_to_s'>to_s</span><span class='rparen'>)</span>
426
- <span class='kw'>end</span></pre>
427
- </td>
428
- </tr>
429
- </table>
430
- </div>
431
-
432
- <div class="method_details ">
433
- <h3 class="signature " id="keys-instance_method">
434
-
435
- #<strong>keys</strong> &#x21d2; <tt>Object</tt>
436
-
437
-
438
-
439
-
440
-
441
- </h3><table class="source_code">
442
- <tr>
443
- <td>
444
- <pre class="lines">
445
-
446
-
447
- 9
448
- 10
449
- 11</pre>
450
- </td>
451
- <td>
452
- <pre class="code"><span class="info file"># File 'lib/simple/service/action/indie_hash.rb', line 9</span>
453
-
454
- <span class='kw'>def</span> <span class='id identifier rubyid_keys'>keys</span>
455
- <span class='ivar'>@hsh</span><span class='period'>.</span><span class='id identifier rubyid_keys'>keys</span>
456
- <span class='kw'>end</span></pre>
457
- </td>
458
- </tr>
459
- </table>
460
- </div>
461
-
462
- <div class="method_details ">
463
- <h3 class="signature " id="merge-instance_method">
464
-
465
- #<strong>merge</strong>(other_hsh) &#x21d2; <tt>Object</tt>
466
-
467
-
468
-
469
-
470
-
471
- </h3><table class="source_code">
472
- <tr>
473
- <td>
474
- <pre class="lines">
475
-
476
-
477
- 26
478
- 27
479
- 28
480
- 29</pre>
481
- </td>
482
- <td>
483
- <pre class="code"><span class="info file"># File 'lib/simple/service/action/indie_hash.rb', line 26</span>
484
-
485
- <span class='kw'>def</span> <span class='id identifier rubyid_merge'>merge</span><span class='lparen'>(</span><span class='id identifier rubyid_other_hsh'>other_hsh</span><span class='rparen'>)</span>
486
- <span class='ivar'>@hsh</span> <span class='op'>=</span> <span class='ivar'>@hsh</span><span class='period'>.</span><span class='id identifier rubyid_merge'>merge</span><span class='lparen'>(</span><span class='id identifier rubyid_other_hsh'>other_hsh</span><span class='period'>.</span><span class='id identifier rubyid_send'>send</span><span class='lparen'>(</span><span class='symbol'>:__hsh__</span><span class='rparen'>)</span><span class='rparen'>)</span>
487
- <span class='kw'>self</span>
488
- <span class='kw'>end</span></pre>
489
- </td>
490
- </tr>
491
- </table>
492
- </div>
493
-
494
- </div>
495
-
496
- </div>
497
-
498
- <div id="footer">
499
- Generated on Tue Dec 3 13:46:26 2019 by
500
- <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
501
- 0.9.20 (ruby-2.5.1).
502
- </div>
503
-
504
- </div>
505
- </body>
506
- </html>