lhs 15.3.1 → 15.3.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.rubocop.localch.yml +158 -21
- data/.rubocop.yml +9 -3
- data/lhs.gemspec +10 -9
- data/lib/lhs/complex.rb +1 -1
- data/lib/lhs/concerns/autoload_records.rb +1 -1
- data/lib/lhs/concerns/collection/handle_nested.rb +1 -1
- data/lib/lhs/concerns/inspect.rb +1 -1
- data/lib/lhs/concerns/item/validation.rb +2 -2
- data/lib/lhs/concerns/proxy/accessors.rb +1 -1
- data/lib/lhs/concerns/proxy/problems.rb +1 -1
- data/lib/lhs/concerns/record/chainable.rb +1 -1
- data/lib/lhs/concerns/record/endpoints.rb +2 -2
- data/lib/lhs/concerns/record/model.rb +1 -1
- data/lib/lhs/concerns/record/request.rb +5 -5
- data/lib/lhs/data.rb +5 -4
- data/lib/lhs/endpoint.rb +1 -1
- data/lib/lhs/item.rb +8 -0
- data/lib/lhs/pagination/base.rb +0 -1
- data/lib/lhs/problems/base.rb +1 -1
- data/lib/lhs/record.rb +1 -1
- data/lib/lhs/version.rb +1 -1
- data/spec/autoloading_spec.rb +4 -4
- data/spec/collection/accessors_spec.rb +1 -1
- data/spec/collection/collection_items_spec.rb +1 -1
- data/spec/collection/configurable_spec.rb +1 -1
- data/spec/collection/meta_data_spec.rb +1 -1
- data/spec/collection/to_a_spec.rb +1 -1
- data/spec/collection/to_ary_spec.rb +6 -2
- data/spec/collection/without_object_items_spec.rb +1 -1
- data/spec/complex/reduce_spec.rb +2 -2
- data/spec/concerns/record/request_spec.rb +1 -1
- data/spec/data/collection_spec.rb +1 -1
- data/spec/data/equality_spec.rb +1 -1
- data/spec/data/inspect_spec.rb +1 -1
- data/spec/data/is_item_or_collection_spec.rb +1 -1
- data/spec/data/item_spec.rb +1 -1
- data/spec/data/merge_spec.rb +1 -1
- data/spec/data/parent_spec.rb +1 -1
- data/spec/data/raw_spec.rb +1 -1
- data/spec/data/respond_to_spec.rb +3 -3
- data/spec/data/root_spec.rb +1 -1
- data/spec/data/select_spec.rb +1 -1
- data/spec/data/to_ary_spec.rb +26 -0
- data/spec/data/to_json_spec.rb +1 -1
- data/spec/endpoint/for_url_spec.rb +1 -1
- data/spec/item/access_errors_spec.rb +1 -1
- data/spec/item/accessors_spec.rb +1 -1
- data/spec/item/add_error_spec.rb +1 -1
- data/spec/item/becomes_spec.rb +1 -1
- data/spec/item/blacklisted_keywords_spec.rb +1 -1
- data/spec/item/delegate_spec.rb +1 -1
- data/spec/item/destroy_spec.rb +2 -2
- data/spec/item/dig_spec.rb +1 -1
- data/spec/item/error_codes_spec.rb +1 -1
- data/spec/item/errors_spec.rb +22 -22
- data/spec/item/fetch_spec.rb +1 -1
- data/spec/item/getter_spec.rb +1 -1
- data/spec/item/internal_data_structure_spec.rb +1 -1
- data/spec/item/map_spec.rb +1 -1
- data/spec/item/partial_update_spec.rb +3 -3
- data/spec/item/save_spec.rb +2 -2
- data/spec/item/setter_spec.rb +1 -1
- data/spec/item/translate_errors_spec.rb +1 -1
- data/spec/item/update_spec.rb +1 -1
- data/spec/item/validation_spec.rb +4 -4
- data/spec/item/warning_codes_spec.rb +1 -1
- data/spec/item/warnings_spec.rb +1 -3
- data/spec/pagination/pages_left_spec.rb +1 -1
- data/spec/pagination/parameters_spec.rb +1 -1
- data/spec/proxy/create_sub_resource_spec.rb +5 -5
- data/spec/proxy/load_spec.rb +8 -10
- data/spec/proxy/record_identification_spec.rb +1 -1
- data/spec/record/all_spec.rb +3 -3
- data/spec/record/build_spec.rb +1 -1
- data/spec/record/cast_nested_data_spec.rb +1 -1
- data/spec/record/chain_error_handling_spec.rb +1 -1
- data/spec/record/create_spec.rb +4 -4
- data/spec/record/creation_failed_spec.rb +2 -2
- data/spec/record/definitions_spec.rb +1 -1
- data/spec/record/destroy_spec.rb +1 -1
- data/spec/record/dig_configuration_spec.rb +1 -1
- data/spec/record/endpoint_inheritance_spec.rb +3 -3
- data/spec/record/endpoint_options_spec.rb +2 -2
- data/spec/record/endpoints_spec.rb +7 -7
- data/spec/record/equality_spec.rb +1 -1
- data/spec/record/expanded_spec.rb +1 -1
- data/spec/record/fetch_spec.rb +1 -1
- data/spec/record/find_by_chains_spec.rb +1 -1
- data/spec/record/find_by_spec.rb +2 -2
- data/spec/record/find_each_spec.rb +1 -1
- data/spec/record/find_in_batches_spec.rb +2 -2
- data/spec/record/find_in_parallel_spec.rb +2 -2
- data/spec/record/find_spec.rb +3 -3
- data/spec/record/first_spec.rb +2 -2
- data/spec/record/handle_includes_errors_spec.rb +1 -1
- data/spec/record/has_many_spec.rb +3 -3
- data/spec/record/ignore_errors_spec.rb +5 -14
- data/spec/record/immutable_chains_spec.rb +1 -1
- data/spec/record/includes_all_spec.rb +6 -6
- data/spec/record/includes_spec.rb +13 -13
- data/spec/record/includes_warning_spec.rb +1 -1
- data/spec/record/item_key_spec.rb +1 -1
- data/spec/record/items_created_key_configuration_spec.rb +1 -1
- data/spec/record/mapping_spec.rb +1 -1
- data/spec/record/model_name_spec.rb +1 -1
- data/spec/record/new_spec.rb +5 -5
- data/spec/record/options_spec.rb +5 -5
- data/spec/record/paginatable_collection_spec.rb +5 -6
- data/spec/record/pagination_chain_spec.rb +3 -3
- data/spec/record/pagination_links_spec.rb +1 -1
- data/spec/record/pagination_spec.rb +1 -1
- data/spec/record/persisted_spec.rb +2 -1
- data/spec/record/references_spec.rb +1 -1
- data/spec/record/reload_by_id_spec.rb +1 -1
- data/spec/record/reload_spec.rb +2 -2
- data/spec/record/request_spec.rb +3 -3
- data/spec/record/scope_chains_spec.rb +1 -1
- data/spec/record/to_hash_spec.rb +1 -1
- data/spec/record/to_json_spec.rb +1 -1
- data/spec/record/where_chains_spec.rb +3 -3
- data/spec/record/where_spec.rb +1 -1
- data/spec/record/where_values_hash_spec.rb +1 -1
- data/spec/request_cycle_cache/main_spec.rb +2 -1
- data/spec/require_lhs_spec.rb +1 -1
- data/spec/support/cleanup.rb +1 -1
- data/spec/support/request_cycle_cache.rb +1 -1
- data/spec/views/form_for_spec.rb +1 -1
- metadata +47 -31
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 8010781e2fd91ba9ecac88aaf5894da86f1eeed4
|
4
|
+
data.tar.gz: c6d867261dd21b0092e028d2c575d35750eefd17
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 22e05d07613f147ee2bf14955af07ea1f1f36307b7c0880c6d6e143514631f40f9fcddd2c7054ad0c72c6ed084c7260930e57123ff859f829f737dc53fc13113
|
7
|
+
data.tar.gz: 2fb6114404ce5fa4e089814bfd72c0b9283531c29b1aee6f04c9ced7f701a333de2db9311c514da621a0421de7e6fae9f591043b1619bfeed5e22a4ad3b1bf2b
|
data/.rubocop.localch.yml
CHANGED
@@ -1,30 +1,41 @@
|
|
1
1
|
# This is master rubocop configuration.
|
2
2
|
# DO NOT EDIT THIS FILE - it WILL be overwriten on every config update
|
3
3
|
AllCops:
|
4
|
-
TargetRubyVersion: 2.
|
4
|
+
TargetRubyVersion: 2.3
|
5
5
|
DisplayCopNames: true
|
6
6
|
DisplayStyleGuide: true
|
7
|
-
Include:
|
8
|
-
- '**/Rakefile'
|
9
|
-
- '**/config.ru'
|
10
|
-
- '**/Capfile'
|
11
7
|
Exclude:
|
12
8
|
- 'db/**/*'
|
13
9
|
- 'script/**/*'
|
14
10
|
- 'vendor/bundle/**/*'
|
11
|
+
- 'vendor/assets/**/*'
|
15
12
|
- 'bin/**/*'
|
16
13
|
- 'config/unicorn.rb'
|
17
14
|
- 'config/compass.rb'
|
18
15
|
- 'Rakefile'
|
19
|
-
- '
|
16
|
+
- 'app/controllers/error_trap_controller.rb'
|
17
|
+
- 'app/controllers/hsts_controller.rb'
|
18
|
+
- 'spec/lib/util_spec.rb'
|
20
19
|
|
21
20
|
Rails:
|
22
21
|
Enabled: true
|
23
22
|
|
23
|
+
require:
|
24
|
+
- rubocop-rspec
|
25
|
+
|
26
|
+
Bundler/OrderedGems:
|
27
|
+
Enabled: false
|
28
|
+
|
24
29
|
Lint/HandleExceptions:
|
25
30
|
Exclude:
|
26
31
|
- spec/**/*
|
27
32
|
|
33
|
+
Lint/UriEscapeUnescape:
|
34
|
+
Enabled: false
|
35
|
+
|
36
|
+
Style/RescueStandardError:
|
37
|
+
Enabled: false
|
38
|
+
|
28
39
|
Metrics/LineLength:
|
29
40
|
Enabled: false
|
30
41
|
|
@@ -46,6 +57,9 @@ Metrics/ClassLength:
|
|
46
57
|
Metrics/ModuleLength:
|
47
58
|
Enabled: false
|
48
59
|
|
60
|
+
Metrics/BlockLength:
|
61
|
+
Enabled: false
|
62
|
+
|
49
63
|
Metrics/ParameterLists:
|
50
64
|
Enabled: false
|
51
65
|
|
@@ -70,9 +84,39 @@ Performance/RedundantMerge:
|
|
70
84
|
Performance/Casecmp:
|
71
85
|
Enabled: false
|
72
86
|
|
73
|
-
|
87
|
+
Layout/MultilineOperationIndentation:
|
88
|
+
EnforcedStyle: indented
|
89
|
+
|
90
|
+
Layout/DotPosition:
|
91
|
+
EnforcedStyle: leading
|
92
|
+
|
93
|
+
Layout/AlignParameters:
|
94
|
+
Enabled: false
|
95
|
+
|
96
|
+
Layout/EmptyLinesAroundClassBody:
|
97
|
+
Enabled: false
|
98
|
+
|
99
|
+
Layout/IndentArray:
|
100
|
+
EnforcedStyle: consistent
|
101
|
+
|
102
|
+
Layout/MultilineMethodCallIndentation:
|
74
103
|
EnforcedStyle: indented
|
75
104
|
|
105
|
+
Layout/MultilineMethodCallBraceLayout:
|
106
|
+
EnforcedStyle: symmetrical
|
107
|
+
|
108
|
+
Layout/EmptyLinesAroundBlockBody:
|
109
|
+
EnforcedStyle: no_empty_lines
|
110
|
+
|
111
|
+
Layout/IndentHeredoc:
|
112
|
+
Enabled: false
|
113
|
+
|
114
|
+
Layout/MultilineArrayBraceLayout:
|
115
|
+
EnforcedStyle: symmetrical
|
116
|
+
|
117
|
+
Layout/MultilineHashBraceLayout:
|
118
|
+
EnforcedStyle: symmetrical
|
119
|
+
|
76
120
|
Style/StringLiterals:
|
77
121
|
Enabled: false
|
78
122
|
|
@@ -80,21 +124,12 @@ Style/RegexpLiteral:
|
|
80
124
|
Exclude:
|
81
125
|
- spec/**/*
|
82
126
|
|
83
|
-
Style/DotPosition:
|
84
|
-
EnforcedStyle: leading
|
85
|
-
|
86
|
-
Style/AlignParameters:
|
87
|
-
Enabled: false
|
88
|
-
|
89
127
|
Style/NumericLiterals:
|
90
128
|
Enabled: false
|
91
129
|
|
92
130
|
Style/WordArray:
|
93
131
|
Enabled: false
|
94
132
|
|
95
|
-
Style/EmptyLinesAroundClassBody:
|
96
|
-
Enabled: false
|
97
|
-
|
98
133
|
Style/Next:
|
99
134
|
Enabled: false
|
100
135
|
|
@@ -153,7 +188,7 @@ Style/Documentation:
|
|
153
188
|
Style/GuardClause:
|
154
189
|
Enabled: false
|
155
190
|
|
156
|
-
|
191
|
+
Naming/AccessorMethodName:
|
157
192
|
Exclude:
|
158
193
|
- spec/support/pages/**/*
|
159
194
|
|
@@ -166,11 +201,50 @@ Style/MutableConstant:
|
|
166
201
|
Style/ConditionalAssignment:
|
167
202
|
Enabled: false
|
168
203
|
|
169
|
-
Style/
|
170
|
-
|
204
|
+
Style/Lambda:
|
205
|
+
Enabled: false
|
171
206
|
|
172
|
-
Style/
|
173
|
-
|
207
|
+
Style/FrozenStringLiteralComment:
|
208
|
+
Enabled: false
|
209
|
+
|
210
|
+
Style/SymbolArray:
|
211
|
+
Enabled: false
|
212
|
+
|
213
|
+
Style/HashSyntax:
|
214
|
+
EnforcedStyle: ruby19
|
215
|
+
|
216
|
+
Style/FormatStringToken:
|
217
|
+
Enabled: false
|
218
|
+
|
219
|
+
Style/EmptyMethod:
|
220
|
+
EnforcedStyle: expanded
|
221
|
+
|
222
|
+
Style/TernaryParentheses:
|
223
|
+
EnforcedStyle: require_parentheses_when_complex
|
224
|
+
|
225
|
+
Naming/VariableNumber:
|
226
|
+
Enabled: false
|
227
|
+
|
228
|
+
Style/PerlBackrefs:
|
229
|
+
Enabled: false
|
230
|
+
|
231
|
+
Style/RegexpLiteral:
|
232
|
+
AllowInnerSlashes: false
|
233
|
+
|
234
|
+
Style/BlockComments:
|
235
|
+
Enabled: false
|
236
|
+
|
237
|
+
Style/RedundantParentheses:
|
238
|
+
Enabled: false
|
239
|
+
|
240
|
+
Naming/FileName:
|
241
|
+
Exclude:
|
242
|
+
- Gemfile
|
243
|
+
- Brewfile
|
244
|
+
- Guardfile
|
245
|
+
|
246
|
+
Style/NumericPredicate:
|
247
|
+
Enabled: false
|
174
248
|
|
175
249
|
RSpec/DescribeClass:
|
176
250
|
Exclude:
|
@@ -182,7 +256,70 @@ RSpec/DescribeClass:
|
|
182
256
|
RSpec/FilePath:
|
183
257
|
Enabled: false
|
184
258
|
|
259
|
+
RSpec/NamedSubject:
|
260
|
+
Enabled: false
|
261
|
+
|
262
|
+
RSpec/MultipleExpectations:
|
263
|
+
Enabled: false
|
264
|
+
|
265
|
+
RSpec/ExampleLength:
|
266
|
+
Enabled: false
|
267
|
+
|
268
|
+
RSpec/HookArgument:
|
269
|
+
EnforcedStyle: implicit
|
270
|
+
|
271
|
+
RSpec/MessageSpies:
|
272
|
+
EnforcedStyle: receive
|
273
|
+
|
274
|
+
RSpec/NestedGroups:
|
275
|
+
Enabled: false
|
276
|
+
|
277
|
+
RSpec/VerifiedDoubles:
|
278
|
+
Enabled: false
|
279
|
+
|
280
|
+
RSpec/LeadingSubject:
|
281
|
+
Enabled: false
|
282
|
+
|
283
|
+
RSpec/ExpectInHook:
|
284
|
+
Enabled: false
|
285
|
+
|
286
|
+
RSpec/ReturnFromStub:
|
287
|
+
Enabled: false
|
288
|
+
|
289
|
+
RSpec/SubjectStub:
|
290
|
+
Enabled: false
|
291
|
+
|
292
|
+
RSpec/EmptyLineAfterSubject:
|
293
|
+
Enabled: false
|
294
|
+
|
295
|
+
RSpec/LetSetup:
|
296
|
+
Enabled: false
|
297
|
+
|
298
|
+
RSpec/ImplicitExpect:
|
299
|
+
EnforcedStyle: is_expected
|
300
|
+
|
301
|
+
RSpec/ScatteredLet:
|
302
|
+
Enabled: false
|
303
|
+
|
304
|
+
RSpec/ContextWording:
|
305
|
+
Enabled: false
|
306
|
+
|
185
307
|
Rails/Output:
|
186
308
|
Exclude:
|
187
309
|
- 'config/application.rb'
|
188
310
|
- 'config/initializers/asset_manifest_warning.rb'
|
311
|
+
|
312
|
+
Rails/DynamicFindBy:
|
313
|
+
Enabled: false
|
314
|
+
|
315
|
+
Rails/Presence:
|
316
|
+
Enabled: false
|
317
|
+
|
318
|
+
Capybara/CurrentPathExpectation:
|
319
|
+
Enabled: false
|
320
|
+
|
321
|
+
Naming/UncommunicativeMethodParamName:
|
322
|
+
Enabled: false
|
323
|
+
|
324
|
+
Style/ExpandPathArguments:
|
325
|
+
Enabled: false
|
data/.rubocop.yml
CHANGED
@@ -15,7 +15,10 @@ RSpec/DescribedClass:
|
|
15
15
|
RSpec/AnyInstance:
|
16
16
|
Enabled: false
|
17
17
|
|
18
|
-
Style/
|
18
|
+
Style/MethodMissingSuper:
|
19
|
+
Enabled: false
|
20
|
+
|
21
|
+
Style/MissingRespondToMissing:
|
19
22
|
Enabled: false
|
20
23
|
|
21
24
|
Rails/OutputSafety:
|
@@ -26,11 +29,11 @@ Style/SignalException:
|
|
26
29
|
|
27
30
|
Rails/DynamicFindBy:
|
28
31
|
Enabled: false
|
29
|
-
|
32
|
+
|
30
33
|
Metrics/BlockLength:
|
31
34
|
Enabled: false
|
32
35
|
|
33
|
-
|
36
|
+
Layout/EmptyLinesAroundBlockBody:
|
34
37
|
Enabled: false
|
35
38
|
|
36
39
|
RSpec/MultipleExpectations:
|
@@ -38,3 +41,6 @@ RSpec/MultipleExpectations:
|
|
38
41
|
|
39
42
|
Naming/PredicateName:
|
40
43
|
Enabled: false
|
44
|
+
|
45
|
+
RSpec/MessageSpies:
|
46
|
+
Enabled: false
|
data/lhs.gemspec
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
|
1
|
+
$LOAD_PATH.push File.expand_path("../lib", __FILE__)
|
2
2
|
|
3
3
|
# Maintain your gem's version:
|
4
4
|
require "lhs/version"
|
@@ -20,18 +20,19 @@ Gem::Specification.new do |s|
|
|
20
20
|
s.requirements << 'Ruby >= 2.3.0'
|
21
21
|
s.required_ruby_version = '>= 2.3.0'
|
22
22
|
|
23
|
-
s.add_dependency 'lhc', '~> 9.2'
|
24
|
-
s.add_dependency 'activesupport', '> 4.2'
|
25
23
|
s.add_dependency 'activemodel'
|
24
|
+
s.add_dependency 'activesupport', '> 4.2'
|
25
|
+
s.add_dependency 'lhc', '~> 9.2'
|
26
26
|
|
27
|
-
s.add_development_dependency 'rspec-rails', '>= 3.7.0'
|
28
|
-
s.add_development_dependency 'rails', '>= 4.0.0'
|
29
|
-
s.add_development_dependency 'webmock'
|
30
|
-
s.add_development_dependency 'pry'
|
31
|
-
s.add_development_dependency 'pry-byebug'
|
32
27
|
s.add_development_dependency 'capybara'
|
33
|
-
s.add_development_dependency 'rubocop', '~> 0.47.0'
|
34
28
|
s.add_development_dependency 'json', '>= 1.8.2'
|
29
|
+
s.add_development_dependency 'pry'
|
30
|
+
s.add_development_dependency 'pry-byebug'
|
31
|
+
s.add_development_dependency 'rails', '>= 4.0.0'
|
32
|
+
s.add_development_dependency 'rspec-rails', '>= 3.7.0'
|
33
|
+
s.add_development_dependency 'rubocop', '~> 0.57.1'
|
34
|
+
s.add_development_dependency 'rubocop-rspec', '~> 1.26.0'
|
35
|
+
s.add_development_dependency 'webmock'
|
35
36
|
|
36
37
|
s.license = 'GPL-3'
|
37
38
|
end
|
data/lib/lhs/complex.rb
CHANGED
@@ -91,7 +91,7 @@ class LHS::Complex
|
|
91
91
|
end
|
92
92
|
|
93
93
|
# add it to the array if there was no hash to merge it
|
94
|
-
data.push(other) if
|
94
|
+
data.push(other) if data.none? { |element| element.data.is_a?(Hash) }
|
95
95
|
end
|
96
96
|
|
97
97
|
def merge_into_hash!(other)
|
@@ -26,7 +26,7 @@ module AutoloadRecords
|
|
26
26
|
end
|
27
27
|
|
28
28
|
def self.require_records
|
29
|
-
Dir.glob(Rails.root.join('app
|
29
|
+
Dir.glob(Rails.root.join('app', 'models', '**', '*.rb')).each do |file|
|
30
30
|
require_dependency file if File.read(file).match('LHS::Record')
|
31
31
|
end
|
32
32
|
end
|
@@ -34,7 +34,7 @@ class LHS::Collection < LHS::Proxy
|
|
34
34
|
# Takes configured items key to access collection of items
|
35
35
|
# of falls back to the default key
|
36
36
|
def items_key(record)
|
37
|
-
record
|
37
|
+
record&.items_key || LHS::Record.items_key
|
38
38
|
end
|
39
39
|
end
|
40
40
|
end
|
data/lib/lhs/concerns/inspect.rb
CHANGED
@@ -31,7 +31,7 @@ class LHS::Item < LHS::Proxy
|
|
31
31
|
end
|
32
32
|
|
33
33
|
def merge_validation_params!(endpoint)
|
34
|
-
validates_params = endpoint.options[:validates].
|
34
|
+
validates_params = endpoint.options[:validates].reject { |key, _| key.to_sym == :path }
|
35
35
|
params = endpoint.options.fetch(:params, {}).merge(params_from_link)
|
36
36
|
params = params.merge(validates_params) if validates_params.is_a?(Hash)
|
37
37
|
params
|
@@ -52,7 +52,7 @@ class LHS::Item < LHS::Proxy
|
|
52
52
|
def validation_endpoint
|
53
53
|
endpoint = endpoint_from_link if _data.href # take embeded first
|
54
54
|
endpoint ||= record.find_endpoint(_data._raw)
|
55
|
-
validates = endpoint.options
|
55
|
+
validates = endpoint.options&.fetch(:validates, false)
|
56
56
|
raise 'Endpoint does not support validations!' unless validates
|
57
57
|
endpoint
|
58
58
|
end
|
@@ -73,7 +73,7 @@ class LHS::Proxy
|
|
73
73
|
def wrap_return(value, record, name, args = nil)
|
74
74
|
name = args.first if name == :[]
|
75
75
|
return value unless worth_wrapping?(value)
|
76
|
-
data = value.is_a?(LHS::Data) || value.is_a?(LHS::Record) ? value : LHS::Data.new(value, _data)
|
76
|
+
data = (value.is_a?(LHS::Data) || value.is_a?(LHS::Record)) ? value : LHS::Data.new(value, _data)
|
77
77
|
data.errors = LHS::Problems::Nested::Errors.new(errors, name) if errors.any?
|
78
78
|
data.warnings = LHS::Problems::Nested::Warnings.new(warnings, name) if warnings.any?
|
79
79
|
return record.new(data) if record && !value.is_a?(LHS::Record)
|
@@ -14,7 +14,7 @@ class LHS::Proxy
|
|
14
14
|
end
|
15
15
|
|
16
16
|
def errors
|
17
|
-
response = _raw.present? && _raw.is_a?(Hash) && _raw[:field_errors] ? OpenStruct.new(body: _raw.to_json) : nil
|
17
|
+
response = (_raw.present? && _raw.is_a?(Hash) && _raw[:field_errors]) ? OpenStruct.new(body: _raw.to_json) : nil
|
18
18
|
@errors ||= LHS::Problems::Errors.new(response, record)
|
19
19
|
end
|
20
20
|
|
@@ -71,8 +71,8 @@ class LHS::Record
|
|
71
71
|
private
|
72
72
|
|
73
73
|
def validates_deprecation_check!(options)
|
74
|
-
return
|
75
|
-
return
|
74
|
+
return if options.blank?
|
75
|
+
return if options[:validates].blank?
|
76
76
|
return if options[:validates].is_a?(Hash)
|
77
77
|
return if !options[:validates].is_a?(TrueClass) && options[:validates].match(%r{^\/})
|
78
78
|
raise 'Validates with either true or a simple string is deprecated! See here: https://github.com/local-ch/lhs#validation'
|
@@ -54,7 +54,7 @@ class LHS::Record
|
|
54
54
|
end
|
55
55
|
|
56
56
|
def convert_options_to_endpoint(options)
|
57
|
-
return
|
57
|
+
return if options.blank?
|
58
58
|
url = options[:url]
|
59
59
|
endpoint = LHS::Endpoint.for_url(url)
|
60
60
|
return unless endpoint
|
@@ -70,7 +70,7 @@ class LHS::Record
|
|
70
70
|
# and return them as a ruby hash
|
71
71
|
def values_from_get_params(url, options)
|
72
72
|
uri = parse_uri(url, options)
|
73
|
-
return {}
|
73
|
+
return {} if uri.query.blank?
|
74
74
|
params = Rack::Utils.parse_nested_query(uri.query)
|
75
75
|
params
|
76
76
|
end
|
@@ -401,7 +401,7 @@ class LHS::Record
|
|
401
401
|
|
402
402
|
def multiple_requests(options)
|
403
403
|
options = options.map do |option|
|
404
|
-
next
|
404
|
+
next if option.blank?
|
405
405
|
process_options(option, find_endpoint(option[:params], option.fetch(:url, nil)))
|
406
406
|
end
|
407
407
|
data = LHC.request(options.compact).map do |response|
|
@@ -461,12 +461,12 @@ class LHS::Record
|
|
461
461
|
ignored_errors = options[:ignored_errors]
|
462
462
|
options = options.deep_dup
|
463
463
|
options[:ignored_errors] = ignored_errors if ignored_errors.present?
|
464
|
-
options[:params]
|
464
|
+
options[:params]&.deep_symbolize_keys!
|
465
465
|
options[:error_handler] = merge_error_handlers(options[:error_handler]) if options[:error_handler]
|
466
466
|
options = (endpoint.options || {}).deep_merge(options)
|
467
467
|
options[:url] = compute_url!(options[:params]) unless options.key?(:url)
|
468
468
|
merge_explicit_params!(options[:params])
|
469
|
-
options.delete(:params) if options[:params]
|
469
|
+
options.delete(:params) if options[:params]&.empty?
|
470
470
|
inject_request_cycle_cache!(options)
|
471
471
|
options
|
472
472
|
end
|