stub_requests 0.1.1 → 0.1.2

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.
Files changed (93) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +5 -2
  3. data/.reek.yml +1 -0
  4. data/.rubocop.yml +33 -35
  5. data/.simplecov +14 -8
  6. data/.yardopts +1 -1
  7. data/CHANGELOG.md +4 -1
  8. data/README.md +19 -11
  9. data/Rakefile +1 -3
  10. data/bin/update_docs.sh +16 -0
  11. data/gemfiles/webmock_2.3.gemfile.lock +1 -1
  12. data/gemfiles/webmock_3.5.gemfile.lock +1 -1
  13. data/gemfiles/webmock_develop.gemfile.lock +1 -1
  14. data/lib/rspec/subject_as_lambda.rb +138 -0
  15. data/lib/stub_requests/api.rb +42 -8
  16. data/lib/stub_requests/argument_validation.rb +17 -6
  17. data/lib/stub_requests/configuration.rb +21 -0
  18. data/lib/stub_requests/core_ext/all.rb +4 -0
  19. data/lib/stub_requests/core_ext/array/extract_options.rb +32 -0
  20. data/lib/stub_requests/core_ext/class/attribute.rb +61 -0
  21. data/lib/stub_requests/core_ext/kernel/singleton_class.rb +12 -0
  22. data/lib/stub_requests/core_ext/module/redefine_method.rb +44 -0
  23. data/lib/stub_requests/core_ext/object/blank.rb +99 -155
  24. data/lib/stub_requests/endpoint.rb +28 -30
  25. data/lib/stub_requests/endpoint_registry.rb +18 -16
  26. data/lib/stub_requests/exceptions.rb +84 -0
  27. data/lib/stub_requests/hash_util.rb +2 -0
  28. data/lib/stub_requests/metrics/endpoint_stat.rb +97 -0
  29. data/lib/stub_requests/metrics/registry.rb +132 -0
  30. data/lib/stub_requests/metrics/stub_stat.rb +80 -0
  31. data/lib/stub_requests/metrics.rb +32 -0
  32. data/lib/stub_requests/property/validator.rb +136 -0
  33. data/lib/stub_requests/property.rb +99 -0
  34. data/lib/stub_requests/service.rb +12 -53
  35. data/lib/stub_requests/service_registry.rb +8 -9
  36. data/lib/stub_requests/stub_requests.rb +23 -51
  37. data/lib/stub_requests/uri/builder.rb +5 -1
  38. data/lib/stub_requests/uri/scheme.rb +3 -1
  39. data/lib/stub_requests/uri/suffix.rb +5 -0
  40. data/lib/stub_requests/uri/validator.rb +3 -1
  41. data/lib/stub_requests/uri.rb +34 -0
  42. data/lib/stub_requests/version.rb +1 -1
  43. data/lib/stub_requests/webmock/builder.rb +116 -0
  44. data/lib/stub_requests/webmock/stub_registry_extension.rb +46 -0
  45. data/lib/stub_requests.rb +21 -3
  46. metadata +19 -49
  47. data/docs/.gitkeep +0 -0
  48. data/docs/Array.html +0 -137
  49. data/docs/FalseClass.html +0 -232
  50. data/docs/Hash.html +0 -137
  51. data/docs/NilClass.html +0 -232
  52. data/docs/Numeric.html +0 -233
  53. data/docs/Object.html +0 -396
  54. data/docs/String.html +0 -298
  55. data/docs/StubRequests/API.html +0 -651
  56. data/docs/StubRequests/ArgumentValidation.html +0 -309
  57. data/docs/StubRequests/Endpoint.html +0 -1187
  58. data/docs/StubRequests/EndpointNotFound.html +0 -157
  59. data/docs/StubRequests/EndpointRegistry.html +0 -1527
  60. data/docs/StubRequests/Error.html +0 -153
  61. data/docs/StubRequests/HashUtil.html +0 -304
  62. data/docs/StubRequests/InvalidType.html +0 -252
  63. data/docs/StubRequests/InvalidUri.html +0 -252
  64. data/docs/StubRequests/Service.html +0 -1307
  65. data/docs/StubRequests/ServiceHaveEndpoints.html +0 -244
  66. data/docs/StubRequests/ServiceNotFound.html +0 -252
  67. data/docs/StubRequests/ServiceRegistry.html +0 -1031
  68. data/docs/StubRequests/URI/Builder.html +0 -1194
  69. data/docs/StubRequests/URI/Scheme.html +0 -315
  70. data/docs/StubRequests/URI/Suffix.html +0 -315
  71. data/docs/StubRequests/URI/Validator.html +0 -770
  72. data/docs/StubRequests/URI.html +0 -144
  73. data/docs/StubRequests/UriSegmentMismatch.html +0 -157
  74. data/docs/StubRequests/WebMockBuilder.html +0 -887
  75. data/docs/StubRequests.html +0 -452
  76. data/docs/Time.html +0 -232
  77. data/docs/TrueClass.html +0 -232
  78. data/docs/_config.yml +0 -1
  79. data/docs/_index.html +0 -391
  80. data/docs/class_list.html +0 -51
  81. data/docs/css/common.css +0 -1
  82. data/docs/css/full_list.css +0 -58
  83. data/docs/css/style.css +0 -496
  84. data/docs/file.README.html +0 -225
  85. data/docs/file_list.html +0 -56
  86. data/docs/frames.html +0 -17
  87. data/docs/index.html +0 -225
  88. data/docs/js/app.js +0 -292
  89. data/docs/js/full_list.js +0 -216
  90. data/docs/js/jquery.js +0 -4
  91. data/docs/method_list.html +0 -707
  92. data/docs/top-level-namespace.html +0 -112
  93. data/lib/stub_requests/webmock_builder.rb +0 -108
@@ -1,315 +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
- Module: StubRequests::URI::Scheme
8
-
9
- &mdash; Documentation by YARD 0.9.18
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 = "StubRequests::URI::Scheme";
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 (S)</a> &raquo;
40
- <span class='title'><span class='object_link'><a href="../../StubRequests.html" title="StubRequests (module)">StubRequests</a></span></span> &raquo; <span class='title'><span class='object_link'><a href="../URI.html" title="StubRequests::URI (module)">URI</a></span></span>
41
- &raquo;
42
- <span class="title">Scheme</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>Module: StubRequests::URI::Scheme
63
-
64
-
65
-
66
- </h1>
67
- <div class="box_info">
68
-
69
-
70
-
71
-
72
-
73
-
74
-
75
-
76
-
77
-
78
-
79
- <dl>
80
- <dt>Defined in:</dt>
81
- <dd>lib/stub_requests/uri/scheme.rb</dd>
82
- </dl>
83
-
84
- </div>
85
-
86
- <h2>Overview</h2><div class="docstring">
87
- <div class="discussion">
88
- <p>Module Scheme handles validation of <span class='object_link'><a href="../URI.html" title="StubRequests::URI (module)">StubRequests::URI</a></span> schemes</p>
89
-
90
-
91
- </div>
92
- </div>
93
- <div class="tags">
94
-
95
- <p class="tag_title">Since:</p>
96
- <ul class="since">
97
-
98
- <li>
99
-
100
-
101
-
102
-
103
-
104
- <div class='inline'><p>0.1.0</p>
105
- </div>
106
-
107
- </li>
108
-
109
- </ul>
110
-
111
- </div>
112
-
113
- <h2>
114
- Constant Summary
115
- <small><a href="#" class="constants_summary_toggle">collapse</a></small>
116
- </h2>
117
-
118
- <dl class="constants">
119
-
120
- <dt id="SCHEMES-constant" class="">SCHEMES =
121
- <div class="docstring">
122
- <div class="discussion">
123
- <p>Returns a list of valid HTTP schemes</p>
124
-
125
-
126
- </div>
127
- </div>
128
- <div class="tags">
129
-
130
- <p class="tag_title">Returns:</p>
131
- <ul class="return">
132
-
133
- <li>
134
-
135
-
136
- <span class='type'>(<tt><span class='object_link'><a href="../../Array.html" title="Array (class)">Array</a></span>&lt;<span class='object_link'><a href="../../String.html" title="String (class)">String</a></span>&gt;</tt>)</span>
137
-
138
-
139
-
140
- &mdash;
141
- <div class='inline'><p>a list of valid HTTP schemes</p>
142
- </div>
143
-
144
- </li>
145
-
146
- </ul>
147
- <p class="tag_title">Since:</p>
148
- <ul class="since">
149
-
150
- <li>
151
-
152
-
153
-
154
-
155
-
156
- <div class='inline'><p>0.1.0</p>
157
- </div>
158
-
159
- </li>
160
-
161
- </ul>
162
-
163
- </div>
164
- </dt>
165
- <dd><pre class="code"><span class='qwords_beg'>%w[</span><span class='tstring_content'>http</span><span class='words_sep'> </span><span class='tstring_content'>https</span><span class='tstring_end'>]</span></span><span class='period'>.</span><span class='id identifier rubyid_freeze'>freeze</span></pre></dd>
166
-
167
- </dl>
168
-
169
-
170
-
171
-
172
-
173
-
174
-
175
-
176
-
177
- <h2>
178
- Class Method Summary
179
- <small><a href="#" class="summary_toggle">collapse</a></small>
180
- </h2>
181
-
182
- <ul class="summary">
183
-
184
- <li class="public ">
185
- <span class="summary_signature">
186
-
187
- <a href="#valid%3F-class_method" title="valid? (class method)">.<strong>valid?</strong>(scheme) &#x21d2; true, false </a>
188
-
189
-
190
-
191
- </span>
192
-
193
-
194
-
195
-
196
-
197
-
198
-
199
-
200
-
201
- <span class="summary_desc"><div class='inline'><p>Checks if the scheme is valid.</p>
202
- </div></span>
203
-
204
- </li>
205
-
206
-
207
- </ul>
208
-
209
-
210
-
211
-
212
- <div id="class_method_details" class="method_details_list">
213
- <h2>Class Method Details</h2>
214
-
215
-
216
- <div class="method_details first">
217
- <h3 class="signature first" id="valid?-class_method">
218
-
219
- .<strong>valid?</strong>(scheme) &#x21d2; <tt>true</tt>, <tt>false</tt>
220
-
221
-
222
-
223
-
224
-
225
- </h3><div class="docstring">
226
- <div class="discussion">
227
- <p>Checks if the scheme is valid</p>
228
-
229
-
230
- </div>
231
- </div>
232
- <div class="tags">
233
- <p class="tag_title">Parameters:</p>
234
- <ul class="param">
235
-
236
- <li>
237
-
238
- <span class='name'>scheme</span>
239
-
240
-
241
- <span class='type'>(<tt><span class='object_link'><a href="../../String.html" title="String (class)">String</a></span></tt>)</span>
242
-
243
-
244
-
245
- &mdash;
246
- <div class='inline'><p>a string with the URI scheme to check</p>
247
- </div>
248
-
249
- </li>
250
-
251
- </ul>
252
-
253
- <p class="tag_title">Returns:</p>
254
- <ul class="return">
255
-
256
- <li>
257
-
258
-
259
- <span class='type'>(<tt>true</tt>, <tt>false</tt>)</span>
260
-
261
-
262
-
263
- </li>
264
-
265
- </ul>
266
- <p class="tag_title">Since:</p>
267
- <ul class="since">
268
-
269
- <li>
270
-
271
-
272
-
273
-
274
-
275
- <div class='inline'><p>0.1.0</p>
276
- </div>
277
-
278
- </li>
279
-
280
- </ul>
281
-
282
- </div><table class="source_code">
283
- <tr>
284
- <td>
285
- <pre class="lines">
286
-
287
-
288
- 29
289
- 30
290
- 31</pre>
291
- </td>
292
- <td>
293
- <pre class="code"><span class="info file"># File 'lib/stub_requests/uri/scheme.rb', line 29</span>
294
-
295
- <span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_valid?'>valid?</span><span class='lparen'>(</span><span class='id identifier rubyid_scheme'>scheme</span><span class='rparen'>)</span>
296
- <span class='const'><span class='object_link'><a href="#SCHEMES-constant" title="StubRequests::URI::Scheme::SCHEMES (constant)">SCHEMES</a></span></span><span class='period'>.</span><span class='id identifier rubyid_include?'>include?</span><span class='lparen'>(</span><span class='id identifier rubyid_scheme'>scheme</span><span class='period'>.</span><span class='id identifier rubyid_to_s'>to_s</span><span class='rparen'>)</span>
297
- <span class='kw'>end</span></pre>
298
- </td>
299
- </tr>
300
- </table>
301
- </div>
302
-
303
- </div>
304
-
305
- </div>
306
-
307
- <div id="footer">
308
- Generated on Fri Feb 1 19:57:29 2019 by
309
- <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
310
- 0.9.18 (ruby-2.5.3).
311
- </div>
312
-
313
- </div>
314
- </body>
315
- </html>
@@ -1,315 +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
- Module: StubRequests::URI::Suffix
8
-
9
- &mdash; Documentation by YARD 0.9.18
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 = "StubRequests::URI::Suffix";
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 (S)</a> &raquo;
40
- <span class='title'><span class='object_link'><a href="../../StubRequests.html" title="StubRequests (module)">StubRequests</a></span></span> &raquo; <span class='title'><span class='object_link'><a href="../URI.html" title="StubRequests::URI (module)">URI</a></span></span>
41
- &raquo;
42
- <span class="title">Suffix</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>Module: StubRequests::URI::Suffix
63
-
64
-
65
-
66
- </h1>
67
- <div class="box_info">
68
-
69
-
70
-
71
-
72
-
73
-
74
-
75
-
76
-
77
-
78
-
79
- <dl>
80
- <dt>Defined in:</dt>
81
- <dd>lib/stub_requests/uri/suffix.rb</dd>
82
- </dl>
83
-
84
- </div>
85
-
86
- <h2>Overview</h2><div class="docstring">
87
- <div class="discussion">
88
- <p>Module Suffix deals with validating <span class='object_link'><a href="../URI.html" title="StubRequests::URI (module)">StubRequests::URI</a></span> suffix</p>
89
-
90
-
91
- </div>
92
- </div>
93
- <div class="tags">
94
-
95
- <p class="tag_title">Since:</p>
96
- <ul class="since">
97
-
98
- <li>
99
-
100
-
101
-
102
-
103
-
104
- <div class='inline'><p>0.1.0</p>
105
- </div>
106
-
107
- </li>
108
-
109
- </ul>
110
-
111
- </div>
112
-
113
- <h2>
114
- Constant Summary
115
- <small><a href="#" class="constants_summary_toggle">collapse</a></small>
116
- </h2>
117
-
118
- <dl class="constants">
119
-
120
- <dt id="PORT_REGEX-constant" class="">PORT_REGEX =
121
- <div class="docstring">
122
- <div class="discussion">
123
- <p>Returns a pattern used for matching HTTP(S) ports</p>
124
-
125
-
126
- </div>
127
- </div>
128
- <div class="tags">
129
-
130
- <p class="tag_title">Returns:</p>
131
- <ul class="return">
132
-
133
- <li>
134
-
135
-
136
- <span class='type'>(<tt>RegExp</tt>)</span>
137
-
138
-
139
-
140
- &mdash;
141
- <div class='inline'><p>a pattern used for matching HTTP(S) ports</p>
142
- </div>
143
-
144
- </li>
145
-
146
- </ul>
147
- <p class="tag_title">Since:</p>
148
- <ul class="since">
149
-
150
- <li>
151
-
152
-
153
-
154
-
155
-
156
- <div class='inline'><p>0.1.0</p>
157
- </div>
158
-
159
- </li>
160
-
161
- </ul>
162
-
163
- </div>
164
- </dt>
165
- <dd><pre class="code"><span class='tstring'><span class='regexp_beg'>%r{</span><span class='tstring_content'>:(\d+)/</span><span class='regexp_end'>}</span></span><span class='period'>.</span><span class='id identifier rubyid_freeze'>freeze</span></pre></dd>
166
-
167
- </dl>
168
-
169
-
170
-
171
-
172
-
173
-
174
-
175
-
176
-
177
- <h2>
178
- Class Method Summary
179
- <small><a href="#" class="summary_toggle">collapse</a></small>
180
- </h2>
181
-
182
- <ul class="summary">
183
-
184
- <li class="public ">
185
- <span class="summary_signature">
186
-
187
- <a href="#valid%3F-class_method" title="valid? (class method)">.<strong>valid?</strong>(host) &#x21d2; true, false </a>
188
-
189
-
190
-
191
- </span>
192
-
193
-
194
-
195
-
196
-
197
-
198
-
199
-
200
-
201
- <span class="summary_desc"><div class='inline'><p>Checks if the host has a valid suffix.</p>
202
- </div></span>
203
-
204
- </li>
205
-
206
-
207
- </ul>
208
-
209
-
210
-
211
-
212
- <div id="class_method_details" class="method_details_list">
213
- <h2>Class Method Details</h2>
214
-
215
-
216
- <div class="method_details first">
217
- <h3 class="signature first" id="valid?-class_method">
218
-
219
- .<strong>valid?</strong>(host) &#x21d2; <tt>true</tt>, <tt>false</tt>
220
-
221
-
222
-
223
-
224
-
225
- </h3><div class="docstring">
226
- <div class="discussion">
227
- <p>Checks if the host has a valid suffix</p>
228
-
229
-
230
- </div>
231
- </div>
232
- <div class="tags">
233
- <p class="tag_title">Parameters:</p>
234
- <ul class="param">
235
-
236
- <li>
237
-
238
- <span class='name'>host</span>
239
-
240
-
241
- <span class='type'>(<tt><span class='object_link'><a href="../../String.html" title="String (class)">String</a></span></tt>)</span>
242
-
243
-
244
-
245
- &mdash;
246
- <div class='inline'><p>a string to check</p>
247
- </div>
248
-
249
- </li>
250
-
251
- </ul>
252
-
253
- <p class="tag_title">Returns:</p>
254
- <ul class="return">
255
-
256
- <li>
257
-
258
-
259
- <span class='type'>(<tt>true</tt>, <tt>false</tt>)</span>
260
-
261
-
262
-
263
- </li>
264
-
265
- </ul>
266
- <p class="tag_title">Since:</p>
267
- <ul class="since">
268
-
269
- <li>
270
-
271
-
272
-
273
-
274
-
275
- <div class='inline'><p>0.1.0</p>
276
- </div>
277
-
278
- </li>
279
-
280
- </ul>
281
-
282
- </div><table class="source_code">
283
- <tr>
284
- <td>
285
- <pre class="lines">
286
-
287
-
288
- 26
289
- 27
290
- 28</pre>
291
- </td>
292
- <td>
293
- <pre class="code"><span class="info file"># File 'lib/stub_requests/uri/suffix.rb', line 26</span>
294
-
295
- <span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_valid?'>valid?</span><span class='lparen'>(</span><span class='id identifier rubyid_host'>host</span><span class='rparen'>)</span>
296
- <span class='const'>PublicSuffix</span><span class='period'>.</span><span class='id identifier rubyid_valid?'>valid?</span><span class='lparen'>(</span><span class='id identifier rubyid_host'>host</span><span class='comma'>,</span> <span class='label'>default_rule:</span> <span class='kw'>nil</span><span class='rparen'>)</span>
297
- <span class='kw'>end</span></pre>
298
- </td>
299
- </tr>
300
- </table>
301
- </div>
302
-
303
- </div>
304
-
305
- </div>
306
-
307
- <div id="footer">
308
- Generated on Fri Feb 1 19:57:29 2019 by
309
- <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
310
- 0.9.18 (ruby-2.5.3).
311
- </div>
312
-
313
- </div>
314
- </body>
315
- </html>