finapps 2.1.4 → 2.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 +2 -18
- data/.ruby-gemset +1 -1
- data/.travis.yml +5 -2
- data/README.md +1 -1
- data/finapps.gemspec +10 -12
- data/lib/finapps.rb +5 -21
- data/lib/finapps/rest/client.rb +42 -53
- data/lib/finapps/rest/institutions.rb +2 -2
- data/lib/finapps/rest/institutions_forms.rb +2 -2
- data/lib/finapps/rest/order_reports.rb +4 -4
- data/lib/finapps/rest/order_statuses.rb +2 -2
- data/lib/finapps/rest/order_tokens.rb +2 -3
- data/lib/finapps/rest/orders.rb +6 -6
- data/lib/finapps/rest/password_resets.rb +4 -4
- data/lib/finapps/rest/sessions.rb +2 -2
- data/lib/finapps/rest/user_institutions.rb +21 -26
- data/lib/finapps/rest/user_institutions_forms.rb +2 -2
- data/lib/finapps/rest/user_institutions_statuses.rb +2 -2
- data/lib/finapps/rest/users.rb +5 -5
- data/lib/finapps/rest/version.rb +1 -1
- data/lib/finapps/version.rb +1 -1
- data/spec/rest/client_spec.rb +4 -13
- data/spec/rest/institutions_forms_spec.rb +5 -2
- data/spec/rest/institutions_spec.rb +4 -2
- data/spec/rest/order_reports_spec.rb +4 -4
- data/spec/rest/order_statuses_spec.rb +3 -2
- data/spec/rest/order_tokens_spec.rb +3 -2
- data/spec/rest/orders_spec.rb +6 -5
- data/spec/rest/password_resets_spec.rb +4 -4
- data/spec/rest/sessions_spec.rb +2 -2
- data/spec/rest/user_institutions_forms_spec.rb +5 -2
- data/spec/rest/user_institutions_spec.rb +10 -9
- data/spec/rest/user_institutions_statuses_spec.rb +3 -2
- data/spec/rest/users_spec.rb +4 -4
- data/spec/rest/version_spec.rb +1 -1
- data/spec/spec_helper.rb +5 -3
- data/spec/spec_helpers/client.rb +1 -1
- metadata +49 -124
- data/lib/core_extensions/hash/compact.rb +0 -23
- data/lib/core_extensions/object/blank.rb +0 -69
- data/lib/core_extensions/object/is_integer.rb +0 -10
- data/lib/core_extensions/string/json_to_hash.rb +0 -10
- data/lib/finapps/error.rb +0 -17
- data/lib/finapps/middleware/middleware.rb +0 -22
- data/lib/finapps/middleware/request/accept_json.rb +0 -14
- data/lib/finapps/middleware/request/no_encoding_basic_authentication.rb +0 -21
- data/lib/finapps/middleware/request/tenant_authentication.rb +0 -20
- data/lib/finapps/middleware/request/user_agent.rb +0 -15
- data/lib/finapps/middleware/response/custom_logger.rb +0 -41
- data/lib/finapps/middleware/response/raise_error.rb +0 -46
- data/lib/finapps/rest/base_client.rb +0 -122
- data/lib/finapps/rest/configuration.rb +0 -31
- data/lib/finapps/rest/connection.rb +0 -35
- data/lib/finapps/rest/credentials.rb +0 -21
- data/lib/finapps/rest/defaults.rb +0 -80
- data/lib/finapps/rest/resources.rb +0 -64
- data/lib/finapps/utils/loggeable.rb +0 -14
- data/lib/finapps/utils/parameter_filter.rb +0 -32
- data/spec/core_extensions/hash/compact_spec.rb +0 -21
- data/spec/core_extensions/object/is_integer_spec.rb +0 -17
- data/spec/middleware/request/accept_json_spec.rb +0 -12
- data/spec/middleware/request/no_encoding_basic_authentication_spec.rb +0 -32
- data/spec/middleware/request/tenant_authentication_spec.rb +0 -34
- data/spec/middleware/request/user_agent_spec.rb +0 -12
- data/spec/middleware/response/raise_error_spec.rb +0 -24
- data/spec/rest/base_client_spec.rb +0 -120
- data/spec/rest/configuration_spec.rb +0 -39
- data/spec/rest/credentials_spec.rb +0 -20
- data/spec/rest/resources_spec.rb +0 -76
- data/spec/rest/timeout_spec.rb +0 -9
- data/spec/support/fixtures/relevance_ruleset_names.json +0 -47
- data/spec/utils/parameter_filter_spec.rb +0 -23
data/spec/spec_helpers/client.rb
CHANGED
metadata
CHANGED
@@ -1,175 +1,135 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: finapps
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.1
|
4
|
+
version: 2.2.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Erich Quintero
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2017-02-13 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
|
-
name:
|
14
|
+
name: finapps_core
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
17
|
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: '0
|
19
|
+
version: '2.0'
|
20
20
|
- - ">="
|
21
21
|
- !ruby/object:Gem::Version
|
22
|
-
version: 0.
|
22
|
+
version: 2.0.11
|
23
23
|
type: :runtime
|
24
24
|
prerelease: false
|
25
25
|
version_requirements: !ruby/object:Gem::Requirement
|
26
26
|
requirements:
|
27
27
|
- - "~>"
|
28
28
|
- !ruby/object:Gem::Version
|
29
|
-
version: '0
|
29
|
+
version: '2.0'
|
30
30
|
- - ">="
|
31
31
|
- !ruby/object:Gem::Version
|
32
|
-
version: 0.
|
32
|
+
version: 2.0.11
|
33
33
|
- !ruby/object:Gem::Dependency
|
34
|
-
name:
|
35
|
-
requirement: !ruby/object:Gem::Requirement
|
36
|
-
requirements:
|
37
|
-
- - "~>"
|
38
|
-
- !ruby/object:Gem::Version
|
39
|
-
version: '0.10'
|
40
|
-
- - ">="
|
41
|
-
- !ruby/object:Gem::Version
|
42
|
-
version: 0.10.0
|
43
|
-
type: :runtime
|
44
|
-
prerelease: false
|
45
|
-
version_requirements: !ruby/object:Gem::Requirement
|
46
|
-
requirements:
|
47
|
-
- - "~>"
|
48
|
-
- !ruby/object:Gem::Version
|
49
|
-
version: '0.10'
|
50
|
-
- - ">="
|
51
|
-
- !ruby/object:Gem::Version
|
52
|
-
version: 0.10.0
|
53
|
-
- !ruby/object:Gem::Dependency
|
54
|
-
name: typhoeus
|
55
|
-
requirement: !ruby/object:Gem::Requirement
|
56
|
-
requirements:
|
57
|
-
- - "~>"
|
58
|
-
- !ruby/object:Gem::Version
|
59
|
-
version: '1.0'
|
60
|
-
- - ">="
|
61
|
-
- !ruby/object:Gem::Version
|
62
|
-
version: 1.0.2
|
63
|
-
type: :runtime
|
64
|
-
prerelease: false
|
65
|
-
version_requirements: !ruby/object:Gem::Requirement
|
66
|
-
requirements:
|
67
|
-
- - "~>"
|
68
|
-
- !ruby/object:Gem::Version
|
69
|
-
version: '1.0'
|
70
|
-
- - ">="
|
71
|
-
- !ruby/object:Gem::Version
|
72
|
-
version: 1.0.2
|
73
|
-
- !ruby/object:Gem::Dependency
|
74
|
-
name: rash
|
34
|
+
name: bundler
|
75
35
|
requirement: !ruby/object:Gem::Requirement
|
76
36
|
requirements:
|
77
37
|
- - "~>"
|
78
38
|
- !ruby/object:Gem::Version
|
79
|
-
version: '
|
39
|
+
version: '1.14'
|
80
40
|
- - ">="
|
81
41
|
- !ruby/object:Gem::Version
|
82
|
-
version:
|
83
|
-
type: :
|
42
|
+
version: 1.14.3
|
43
|
+
type: :development
|
84
44
|
prerelease: false
|
85
45
|
version_requirements: !ruby/object:Gem::Requirement
|
86
46
|
requirements:
|
87
47
|
- - "~>"
|
88
48
|
- !ruby/object:Gem::Version
|
89
|
-
version: '
|
49
|
+
version: '1.14'
|
90
50
|
- - ">="
|
91
51
|
- !ruby/object:Gem::Version
|
92
|
-
version:
|
52
|
+
version: 1.14.3
|
93
53
|
- !ruby/object:Gem::Dependency
|
94
|
-
name:
|
54
|
+
name: gem-release
|
95
55
|
requirement: !ruby/object:Gem::Requirement
|
96
56
|
requirements:
|
97
57
|
- - "~>"
|
98
58
|
- !ruby/object:Gem::Version
|
99
|
-
version: '
|
59
|
+
version: '0.7'
|
100
60
|
- - ">="
|
101
61
|
- !ruby/object:Gem::Version
|
102
|
-
version:
|
62
|
+
version: 0.7.4
|
103
63
|
type: :development
|
104
64
|
prerelease: false
|
105
65
|
version_requirements: !ruby/object:Gem::Requirement
|
106
66
|
requirements:
|
107
67
|
- - "~>"
|
108
68
|
- !ruby/object:Gem::Version
|
109
|
-
version: '
|
69
|
+
version: '0.7'
|
110
70
|
- - ">="
|
111
71
|
- !ruby/object:Gem::Version
|
112
|
-
version:
|
72
|
+
version: 0.7.4
|
113
73
|
- !ruby/object:Gem::Dependency
|
114
74
|
name: rake
|
115
75
|
requirement: !ruby/object:Gem::Requirement
|
116
76
|
requirements:
|
117
77
|
- - "~>"
|
118
78
|
- !ruby/object:Gem::Version
|
119
|
-
version: '
|
79
|
+
version: '12.0'
|
120
80
|
- - ">="
|
121
81
|
- !ruby/object:Gem::Version
|
122
|
-
version:
|
82
|
+
version: 12.0.0
|
123
83
|
type: :development
|
124
84
|
prerelease: false
|
125
85
|
version_requirements: !ruby/object:Gem::Requirement
|
126
86
|
requirements:
|
127
87
|
- - "~>"
|
128
88
|
- !ruby/object:Gem::Version
|
129
|
-
version: '
|
89
|
+
version: '12.0'
|
130
90
|
- - ">="
|
131
91
|
- !ruby/object:Gem::Version
|
132
|
-
version:
|
92
|
+
version: 12.0.0
|
133
93
|
- !ruby/object:Gem::Dependency
|
134
94
|
name: rspec
|
135
95
|
requirement: !ruby/object:Gem::Requirement
|
136
96
|
requirements:
|
137
97
|
- - "~>"
|
138
98
|
- !ruby/object:Gem::Version
|
139
|
-
version: '3.
|
99
|
+
version: '3.5'
|
140
100
|
- - ">="
|
141
101
|
- !ruby/object:Gem::Version
|
142
|
-
version: 3.
|
102
|
+
version: 3.5.0
|
143
103
|
type: :development
|
144
104
|
prerelease: false
|
145
105
|
version_requirements: !ruby/object:Gem::Requirement
|
146
106
|
requirements:
|
147
107
|
- - "~>"
|
148
108
|
- !ruby/object:Gem::Version
|
149
|
-
version: '3.
|
109
|
+
version: '3.5'
|
150
110
|
- - ">="
|
151
111
|
- !ruby/object:Gem::Version
|
152
|
-
version: 3.
|
112
|
+
version: 3.5.0
|
153
113
|
- !ruby/object:Gem::Dependency
|
154
114
|
name: webmock
|
155
115
|
requirement: !ruby/object:Gem::Requirement
|
156
116
|
requirements:
|
157
117
|
- - "~>"
|
158
118
|
- !ruby/object:Gem::Version
|
159
|
-
version: '2.
|
119
|
+
version: '2.3'
|
160
120
|
- - ">="
|
161
121
|
- !ruby/object:Gem::Version
|
162
|
-
version: 2.
|
122
|
+
version: 2.3.2
|
163
123
|
type: :development
|
164
124
|
prerelease: false
|
165
125
|
version_requirements: !ruby/object:Gem::Requirement
|
166
126
|
requirements:
|
167
127
|
- - "~>"
|
168
128
|
- !ruby/object:Gem::Version
|
169
|
-
version: '2.
|
129
|
+
version: '2.3'
|
170
130
|
- - ">="
|
171
131
|
- !ruby/object:Gem::Version
|
172
|
-
version: 2.
|
132
|
+
version: 2.3.2
|
173
133
|
- !ruby/object:Gem::Dependency
|
174
134
|
name: sinatra
|
175
135
|
requirement: !ruby/object:Gem::Requirement
|
@@ -216,28 +176,40 @@ dependencies:
|
|
216
176
|
requirements:
|
217
177
|
- - "~>"
|
218
178
|
- !ruby/object:Gem::Version
|
219
|
-
version:
|
179
|
+
version: '1.0'
|
180
|
+
- - ">="
|
181
|
+
- !ruby/object:Gem::Version
|
182
|
+
version: 1.0.5
|
220
183
|
type: :development
|
221
184
|
prerelease: false
|
222
185
|
version_requirements: !ruby/object:Gem::Requirement
|
223
186
|
requirements:
|
224
187
|
- - "~>"
|
225
188
|
- !ruby/object:Gem::Version
|
226
|
-
version:
|
189
|
+
version: '1.0'
|
190
|
+
- - ">="
|
191
|
+
- !ruby/object:Gem::Version
|
192
|
+
version: 1.0.5
|
227
193
|
- !ruby/object:Gem::Dependency
|
228
194
|
name: rubocop
|
229
195
|
requirement: !ruby/object:Gem::Requirement
|
230
196
|
requirements:
|
231
|
-
- -
|
197
|
+
- - "~>"
|
198
|
+
- !ruby/object:Gem::Version
|
199
|
+
version: '0.47'
|
200
|
+
- - ">="
|
232
201
|
- !ruby/object:Gem::Version
|
233
|
-
version: 0.
|
202
|
+
version: 0.47.1
|
234
203
|
type: :development
|
235
204
|
prerelease: false
|
236
205
|
version_requirements: !ruby/object:Gem::Requirement
|
237
206
|
requirements:
|
238
|
-
- -
|
207
|
+
- - "~>"
|
208
|
+
- !ruby/object:Gem::Version
|
209
|
+
version: '0.47'
|
210
|
+
- - ">="
|
239
211
|
- !ruby/object:Gem::Version
|
240
|
-
version: 0.
|
212
|
+
version: 0.47.1
|
241
213
|
description: A simple library for communicating with the FinApps REST API.
|
242
214
|
email:
|
243
215
|
- erich@financialapps.com
|
@@ -260,25 +232,8 @@ files:
|
|
260
232
|
- README.md
|
261
233
|
- Rakefile
|
262
234
|
- finapps.gemspec
|
263
|
-
- lib/core_extensions/hash/compact.rb
|
264
|
-
- lib/core_extensions/object/blank.rb
|
265
|
-
- lib/core_extensions/object/is_integer.rb
|
266
|
-
- lib/core_extensions/string/json_to_hash.rb
|
267
235
|
- lib/finapps.rb
|
268
|
-
- lib/finapps/error.rb
|
269
|
-
- lib/finapps/middleware/middleware.rb
|
270
|
-
- lib/finapps/middleware/request/accept_json.rb
|
271
|
-
- lib/finapps/middleware/request/no_encoding_basic_authentication.rb
|
272
|
-
- lib/finapps/middleware/request/tenant_authentication.rb
|
273
|
-
- lib/finapps/middleware/request/user_agent.rb
|
274
|
-
- lib/finapps/middleware/response/custom_logger.rb
|
275
|
-
- lib/finapps/middleware/response/raise_error.rb
|
276
|
-
- lib/finapps/rest/base_client.rb
|
277
236
|
- lib/finapps/rest/client.rb
|
278
|
-
- lib/finapps/rest/configuration.rb
|
279
|
-
- lib/finapps/rest/connection.rb
|
280
|
-
- lib/finapps/rest/credentials.rb
|
281
|
-
- lib/finapps/rest/defaults.rb
|
282
237
|
- lib/finapps/rest/institutions.rb
|
283
238
|
- lib/finapps/rest/institutions_forms.rb
|
284
239
|
- lib/finapps/rest/order_reports.rb
|
@@ -286,28 +241,15 @@ files:
|
|
286
241
|
- lib/finapps/rest/order_tokens.rb
|
287
242
|
- lib/finapps/rest/orders.rb
|
288
243
|
- lib/finapps/rest/password_resets.rb
|
289
|
-
- lib/finapps/rest/resources.rb
|
290
244
|
- lib/finapps/rest/sessions.rb
|
291
245
|
- lib/finapps/rest/user_institutions.rb
|
292
246
|
- lib/finapps/rest/user_institutions_forms.rb
|
293
247
|
- lib/finapps/rest/user_institutions_statuses.rb
|
294
248
|
- lib/finapps/rest/users.rb
|
295
249
|
- lib/finapps/rest/version.rb
|
296
|
-
- lib/finapps/utils/loggeable.rb
|
297
|
-
- lib/finapps/utils/parameter_filter.rb
|
298
250
|
- lib/finapps/version.rb
|
299
251
|
- lib/tasks/releaser.rake
|
300
|
-
- spec/core_extensions/hash/compact_spec.rb
|
301
|
-
- spec/core_extensions/object/is_integer_spec.rb
|
302
|
-
- spec/middleware/request/accept_json_spec.rb
|
303
|
-
- spec/middleware/request/no_encoding_basic_authentication_spec.rb
|
304
|
-
- spec/middleware/request/tenant_authentication_spec.rb
|
305
|
-
- spec/middleware/request/user_agent_spec.rb
|
306
|
-
- spec/middleware/response/raise_error_spec.rb
|
307
|
-
- spec/rest/base_client_spec.rb
|
308
252
|
- spec/rest/client_spec.rb
|
309
|
-
- spec/rest/configuration_spec.rb
|
310
|
-
- spec/rest/credentials_spec.rb
|
311
253
|
- spec/rest/institutions_forms_spec.rb
|
312
254
|
- spec/rest/institutions_spec.rb
|
313
255
|
- spec/rest/order_reports_spec.rb
|
@@ -315,9 +257,7 @@ files:
|
|
315
257
|
- spec/rest/order_tokens_spec.rb
|
316
258
|
- spec/rest/orders_spec.rb
|
317
259
|
- spec/rest/password_resets_spec.rb
|
318
|
-
- spec/rest/resources_spec.rb
|
319
260
|
- spec/rest/sessions_spec.rb
|
320
|
-
- spec/rest/timeout_spec.rb
|
321
261
|
- spec/rest/user_institutions_forms_spec.rb
|
322
262
|
- spec/rest/user_institutions_spec.rb
|
323
263
|
- spec/rest/user_institutions_statuses_spec.rb
|
@@ -339,7 +279,6 @@ files:
|
|
339
279
|
- spec/support/fixtures/order_token.json
|
340
280
|
- spec/support/fixtures/orders.json
|
341
281
|
- spec/support/fixtures/password_reset_token.json
|
342
|
-
- spec/support/fixtures/relevance_ruleset_names.json
|
343
282
|
- spec/support/fixtures/resource.json
|
344
283
|
- spec/support/fixtures/resource_not_found.json
|
345
284
|
- spec/support/fixtures/resources.json
|
@@ -350,7 +289,6 @@ files:
|
|
350
289
|
- spec/support/fixtures/user_institution_status.json
|
351
290
|
- spec/support/fixtures/user_institutions_list.json
|
352
291
|
- spec/support/fixtures/user_institutions_show.json
|
353
|
-
- spec/utils/parameter_filter_spec.rb
|
354
292
|
homepage: https://github.com/finapps/ruby-client
|
355
293
|
licenses:
|
356
294
|
- MIT
|
@@ -377,19 +315,16 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
377
315
|
version: '0'
|
378
316
|
requirements: []
|
379
317
|
rubyforge_project:
|
380
|
-
rubygems_version: 2.6.
|
318
|
+
rubygems_version: 2.6.10
|
381
319
|
signing_key:
|
382
320
|
specification_version: 4
|
383
321
|
summary: FinApps REST API ruby client.
|
384
322
|
test_files:
|
385
|
-
- spec/rest/base_client_spec.rb
|
386
|
-
- spec/rest/credentials_spec.rb
|
387
323
|
- spec/rest/version_spec.rb
|
388
324
|
- spec/rest/user_institutions_forms_spec.rb
|
389
325
|
- spec/rest/orders_spec.rb
|
390
326
|
- spec/rest/order_tokens_spec.rb
|
391
327
|
- spec/rest/institutions_forms_spec.rb
|
392
|
-
- spec/rest/configuration_spec.rb
|
393
328
|
- spec/rest/user_institutions_statuses_spec.rb
|
394
329
|
- spec/rest/client_spec.rb
|
395
330
|
- spec/rest/users_spec.rb
|
@@ -398,17 +333,7 @@ test_files:
|
|
398
333
|
- spec/rest/order_reports_spec.rb
|
399
334
|
- spec/rest/institutions_spec.rb
|
400
335
|
- spec/rest/order_statuses_spec.rb
|
401
|
-
- spec/rest/timeout_spec.rb
|
402
336
|
- spec/rest/sessions_spec.rb
|
403
|
-
- spec/rest/resources_spec.rb
|
404
337
|
- spec/support/fake_api.rb
|
405
|
-
- spec/utils/parameter_filter_spec.rb
|
406
338
|
- spec/spec_helpers/client.rb
|
407
339
|
- spec/spec_helper.rb
|
408
|
-
- spec/core_extensions/hash/compact_spec.rb
|
409
|
-
- spec/core_extensions/object/is_integer_spec.rb
|
410
|
-
- spec/middleware/request/no_encoding_basic_authentication_spec.rb
|
411
|
-
- spec/middleware/request/user_agent_spec.rb
|
412
|
-
- spec/middleware/request/tenant_authentication_spec.rb
|
413
|
-
- spec/middleware/request/accept_json_spec.rb
|
414
|
-
- spec/middleware/response/raise_error_spec.rb
|
@@ -1,23 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
module HashExtensions
|
3
|
-
refine Hash do
|
4
|
-
# Returns a hash with non +nil+ values.
|
5
|
-
#
|
6
|
-
# hash = { a: true, b: false, c: nil}
|
7
|
-
# hash.compact # => { a: true, b: false}
|
8
|
-
# hash # => { a: true, b: false, c: nil}
|
9
|
-
# { c: nil }.compact # => {}
|
10
|
-
def compact
|
11
|
-
select {|_, value| !value.nil? }
|
12
|
-
end
|
13
|
-
|
14
|
-
# Replaces current hash with non +nil+ values.
|
15
|
-
#
|
16
|
-
# hash = { a: true, b: false, c: nil}
|
17
|
-
# hash.compact! # => { a: true, b: false}
|
18
|
-
# hash # => { a: true, b: false}
|
19
|
-
def compact!
|
20
|
-
reject! {|_, value| value.nil? }
|
21
|
-
end
|
22
|
-
end
|
23
|
-
end
|
@@ -1,69 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
module ObjectExtensions
|
3
|
-
refine Object do
|
4
|
-
# An object is blank if it's false, empty, or a whitespace string.
|
5
|
-
# For example, +false+, '', ' ', +nil+, [], and {} are all blank.
|
6
|
-
#
|
7
|
-
# This simplifies
|
8
|
-
#
|
9
|
-
# !address || address.empty?
|
10
|
-
#
|
11
|
-
# to
|
12
|
-
#
|
13
|
-
# address.blank?
|
14
|
-
#
|
15
|
-
# @return [true, false]
|
16
|
-
def blank?
|
17
|
-
respond_to?(:empty?) ? !!empty? : !self
|
18
|
-
end
|
19
|
-
|
20
|
-
# An object is present if it's not blank.
|
21
|
-
#
|
22
|
-
# @return [true, false]
|
23
|
-
def present?
|
24
|
-
!blank?
|
25
|
-
end
|
26
|
-
|
27
|
-
# Returns the receiver if it's present otherwise returns +nil+.
|
28
|
-
# <tt>object.presence</tt> is equivalent to
|
29
|
-
#
|
30
|
-
# object.present? ? object : nil
|
31
|
-
#
|
32
|
-
# For example, something like
|
33
|
-
#
|
34
|
-
# state = params[:state] if params[:state].present?
|
35
|
-
# country = params[:country] if params[:country].present?
|
36
|
-
# region = state || country || 'US'
|
37
|
-
#
|
38
|
-
# becomes
|
39
|
-
#
|
40
|
-
# region = params[:state].presence || params[:country].presence || 'US'
|
41
|
-
#
|
42
|
-
# @return [Object]
|
43
|
-
def presence
|
44
|
-
self if present?
|
45
|
-
end
|
46
|
-
end
|
47
|
-
end
|
48
|
-
|
49
|
-
module StringExtensions
|
50
|
-
refine String do
|
51
|
-
BLANK_RE = /\A[[:space:]]*\z/
|
52
|
-
|
53
|
-
# A string is blank if it's empty or contains whitespaces only:
|
54
|
-
#
|
55
|
-
# ''.blank? # => true
|
56
|
-
# ' '.blank? # => true
|
57
|
-
# "\t\n\r".blank? # => true
|
58
|
-
# ' blah '.blank? # => false
|
59
|
-
#
|
60
|
-
# Unicode whitespace is supported:
|
61
|
-
#
|
62
|
-
# "\u00a0".blank? # => true
|
63
|
-
#
|
64
|
-
# @return [true, false]
|
65
|
-
def blank?
|
66
|
-
match BLANK_RE
|
67
|
-
end
|
68
|
-
end
|
69
|
-
end
|