miscellany 0.1.30 → 0.1.31
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/lib/miscellany/controller/json_uploads.rb +17 -15
- data/lib/miscellany/version.rb +1 -1
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 2e8daf2119169fb42523d39ed55e69d90dc43db0bed0178971b60aa279797a3e
|
4
|
+
data.tar.gz: 96716ff17fbc11304ead76e6c294888db6b48fad5f3fa7ea214b6fb445870260
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: c0320bcd305fbbaa8588c705293ae81be13cd20e2b41cad37aaa56e4fc84c1a7414a79bc15f3d22337bc376307a56064df26d238a979f4a0da5edfd1567dfd4f
|
7
|
+
data.tar.gz: 6f6f45648681860132544efc225e35d0575c7cf6f8a0b478ade5fe4defab8be9a498dd26d4af3f4159c5737146cee5332c31d7c912b10a1c083c126205f87423
|
@@ -4,32 +4,34 @@ module Miscellany
|
|
4
4
|
|
5
5
|
# This hackery allows using JSON params along with file-uploads
|
6
6
|
# On the frontend, use MultiPart form data, and add _parameters as an entry
|
7
|
-
def
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
phash.merge!(json_layer)
|
17
|
-
end
|
7
|
+
def process_action(*)
|
8
|
+
json_param = request.request_parameters[:_parameters]
|
9
|
+
if json_param.present?
|
10
|
+
parsed = JSON.parse(json_param)
|
11
|
+
overlapping_params = request.request_parameters.slice(*(request.request_parameters.keys & parsed.keys))
|
12
|
+
_merge_json_params(parsed, overlapping_params)
|
13
|
+
|
14
|
+
request.parameters.merge! parsed
|
15
|
+
request.request_parameters.merge! parsed
|
18
16
|
end
|
19
|
-
|
17
|
+
super
|
20
18
|
end
|
21
19
|
|
22
20
|
private
|
23
21
|
|
24
|
-
def
|
22
|
+
def _wrapper_enabled?
|
23
|
+
(_wrapper_options.format.include?(:json) && request.request_parameters[:_parameters].present?) || super
|
24
|
+
end
|
25
|
+
|
26
|
+
def _merge_json_params(base, layer)
|
25
27
|
if base.is_a?(Array) && (layer.is_a?(Hash) || layer.is_a?(Array))
|
26
28
|
base.each_with_index.map do |v, i|
|
27
29
|
over_key = layer.is_a?(Hash) ? i.to_s : i
|
28
|
-
|
30
|
+
_merge_json_params(v, layer[over_key])
|
29
31
|
end
|
30
32
|
elsif base.is_a?(Hash) && layer.is_a?(Hash)
|
31
33
|
base.each do |k, v|
|
32
|
-
base[k] =
|
34
|
+
base[k] = _merge_json_params(v, layer[k])
|
33
35
|
end
|
34
36
|
layer.merge(base)
|
35
37
|
else
|
data/lib/miscellany/version.rb
CHANGED