active_sql_bindings 0.0.2 → 0.0.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/active_sql_bindings.rb +11 -7
- 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: f239b3e4d3fd059d41919b16985b560bc34ab11054a39e142aa2b3bdb42a443d
|
4
|
+
data.tar.gz: 87a56fa5a5e000fdda4c545885a0048c8c4d42fd26d3a41b604836db37c9a4ef
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ae7f17113f919ee5e61fb7c13f7ea285e251c21dc3700176c23e99bb0c26cb8f5d1e2d156861ac7f5cebc15296c173ac02c426ceaa44224b2a95481323c2b1d4
|
7
|
+
data.tar.gz: fda855c717069c7c985b4d37854b5a419dc1af850a36d0d5c3e9896eec8b7da9b3e609b6bba38ed24b3d99a30946a13a64b15c87b6bbfcbb71d32f4a8c18b95e
|
data/lib/active_sql_bindings.rb
CHANGED
@@ -31,15 +31,19 @@ class ActiveSqlBindings
|
|
31
31
|
end
|
32
32
|
|
33
33
|
# Execute query, convert to hash with symbol keys
|
34
|
-
|
34
|
+
sql_result = ActiveRecord::Base.connection.exec_query(sql, 'SQL', bindings)
|
35
35
|
|
36
|
-
#
|
37
|
-
|
38
|
-
next if v.nil?
|
36
|
+
# Find fields JSON/JSONb type
|
37
|
+
json_fields = sql_result.column_types.select { |_k, v| v.type == :json || v.type == :jsonb }.keys
|
39
38
|
|
40
|
-
|
41
|
-
|
42
|
-
|
39
|
+
# Convert JSON data to hash
|
40
|
+
sql_result.map do |v|
|
41
|
+
v.map do |key, value|
|
42
|
+
[
|
43
|
+
key.to_sym,
|
44
|
+
json_fields.include?(key) ? json_to_hash(value) : value
|
45
|
+
]
|
46
|
+
end.to_h
|
43
47
|
end
|
44
48
|
end
|
45
49
|
|