simple-service 0.1.5 → 0.1.6

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.
@@ -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>