k_util 0.0.8 → 0.0.9
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/k_util/data_helper.rb +8 -4
- data/lib/k_util/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: 38fccd7c4b972bc1f8c1c6af03b5b956292890aee4ceacbd4a5144b09c6d3b51
|
4
|
+
data.tar.gz: e20b45b314fac1440757b526b14cf30d228173ddc89e328205a1bb66a22384dc
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 151a8e8a701153e448edddb7cd238512163e24f99690e2bae9717d2a388b5b181126f032352977a3c53468f181bb29cecb51dda836c1a4a608e968360c8d5f86
|
7
|
+
data.tar.gz: 69b14793219fc0e9327b9707bd1cc243959faefb2b7643bbe28dc9a0cf34bcf2ef85e1db6872fddc8ea2eeff0375da8296195a9def8094c875841d9dee976340
|
data/lib/k_util/data_helper.rb
CHANGED
@@ -23,27 +23,31 @@ module KUtil
|
|
23
23
|
end
|
24
24
|
end
|
25
25
|
|
26
|
-
# rubocop:disable Metrics/AbcSize, Metrics/CyclomaticComplexity
|
26
|
+
# rubocop:disable Metrics/AbcSize, Metrics/CyclomaticComplexity, Metrics/PerceivedComplexity
|
27
27
|
def to_hash(data)
|
28
28
|
# No test yet
|
29
29
|
if data.is_a?(Array)
|
30
30
|
return data.map { |v| v.is_a?(OpenStruct) ? to_hash(v) : v }
|
31
31
|
end
|
32
32
|
|
33
|
+
return to_hash(data.to_h) if !data.is_a?(Hash) && data.respond_to?(:to_h)
|
34
|
+
|
33
35
|
data.each_pair.with_object({}) do |(key, value), hash|
|
34
36
|
case value
|
35
|
-
when OpenStruct
|
37
|
+
when OpenStruct, Struct, Hash
|
36
38
|
hash[key] = to_hash(value)
|
37
39
|
when Array
|
38
40
|
# No test yet
|
39
|
-
values = value.map
|
41
|
+
values = value.map do |v|
|
42
|
+
v.is_a?(OpenStruct) || v.is_a?(Struct) || v.is_a?(Hash) ? struct_to_hash(v) : v
|
43
|
+
end
|
40
44
|
hash[key] = values
|
41
45
|
else
|
42
46
|
hash[key] = value
|
43
47
|
end
|
44
48
|
end
|
45
49
|
end
|
46
|
-
# rubocop:enable Metrics/AbcSize, Metrics/CyclomaticComplexity
|
50
|
+
# rubocop:enable Metrics/AbcSize, Metrics/CyclomaticComplexity, Metrics/PerceivedComplexity
|
47
51
|
|
48
52
|
def clean_symbol(value)
|
49
53
|
return value if value.nil?
|
data/lib/k_util/version.rb
CHANGED