stub_requests 0.1.1 → 0.1.2

Sign up to get free protection for your applications and to get access to all the features.
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>