structured_store 1.1.1 → 1.1.2
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
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: aa0ea30c53e6654f9332650da69b066c2af4d69c6a3007e69d735c554cec8b8a
|
|
4
|
+
data.tar.gz: c612007e1a63d0805b71ef2f2ef106e13480a2866e6a7170fdeeab277a590997
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: d904be6d35ad841db181ca8c27b299a2140efadc5b7b19ef82f49a0c6b3c96d35680debf016ca990bda9e8fca2af05b28820630226136e2a063ac2b9b80510f0
|
|
7
|
+
data.tar.gz: 909365fad19af689d4e5694a55bd0e0977d14b0124c0d49d0c89aee1a39e2f82b8cd153a97cc1867ab563bd63ed663c76209ee8b22f7c4249f395f89387918c4
|
|
@@ -159,7 +159,8 @@ module StructuredStore
|
|
|
159
159
|
@property_resolvers ||= {}
|
|
160
160
|
@property_resolvers[column_name] ||= json_schema_properties(column_name).keys.index_with do |property_name|
|
|
161
161
|
StructuredStore::RefResolvers::Registry.matching_resolver(schema_inspector(column_name),
|
|
162
|
-
property_name
|
|
162
|
+
property_name,
|
|
163
|
+
{ column_name: column_name })
|
|
163
164
|
end
|
|
164
165
|
end
|
|
165
166
|
|
|
@@ -16,9 +16,12 @@ module StructuredStore
|
|
|
16
16
|
# @return [Proc] a lambda that defines the attribute on the singleton class
|
|
17
17
|
# @raise [RuntimeError] if the property type is unsupported
|
|
18
18
|
def define_attribute
|
|
19
|
-
# Capture the property name in
|
|
19
|
+
# Capture the property name and store column name in local variables for closure.
|
|
20
|
+
# context[:column_name] is set by Storable#property_resolvers; fall back to 'store'
|
|
21
|
+
# for any resolver instantiated without that context (e.g. in isolation in tests).
|
|
20
22
|
prop_name = property_name
|
|
21
|
-
|
|
23
|
+
col_name = (context[:column_name] || 'store').to_s
|
|
24
|
+
resolver = self
|
|
22
25
|
|
|
23
26
|
# Define the attribute on the singleton class of the object
|
|
24
27
|
lambda do |object|
|
|
@@ -26,11 +29,11 @@ module StructuredStore
|
|
|
26
29
|
|
|
27
30
|
# Define custom getter and setter methods
|
|
28
31
|
object.singleton_class.define_method(prop_name) do
|
|
29
|
-
resolver.send(:cast_stored_value,
|
|
32
|
+
resolver.send(:cast_stored_value, send(col_name), prop_name, converter)
|
|
30
33
|
end
|
|
31
34
|
|
|
32
35
|
object.singleton_class.define_method("#{prop_name}=") do |value|
|
|
33
|
-
resolver.send(:serialize_value_to_store, self, prop_name, value, converter)
|
|
36
|
+
resolver.send(:serialize_value_to_store, self, col_name, prop_name, value, converter)
|
|
34
37
|
end
|
|
35
38
|
end
|
|
36
39
|
end
|
|
@@ -67,13 +70,13 @@ module StructuredStore
|
|
|
67
70
|
end
|
|
68
71
|
|
|
69
72
|
# Serializes an input value to the store as a hash
|
|
70
|
-
def serialize_value_to_store(object, prop_name, value, converter)
|
|
73
|
+
def serialize_value_to_store(object, col_name, prop_name, value, converter)
|
|
71
74
|
# Initialize store as empty hash if nil
|
|
72
|
-
object.
|
|
73
|
-
return object.
|
|
75
|
+
object.send("#{col_name}=", {}) unless object.send(col_name)
|
|
76
|
+
return object.send(col_name)[prop_name] = nil if value.blank?
|
|
74
77
|
|
|
75
78
|
date1, date2 = converter.convert_to_dates(value)
|
|
76
|
-
object.
|
|
79
|
+
object.send(col_name)[prop_name] = {
|
|
77
80
|
'date1' => date1&.to_fs(:db),
|
|
78
81
|
'date2' => date2&.to_fs(:db)
|
|
79
82
|
}
|
metadata
CHANGED
|
@@ -1,13 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: structured_store
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 1.1.
|
|
4
|
+
version: 1.1.2
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Tim Gentry
|
|
8
|
+
autorequire:
|
|
8
9
|
bindir: bin
|
|
9
10
|
cert_chain: []
|
|
10
|
-
date:
|
|
11
|
+
date: 2026-02-24 00:00:00.000000000 Z
|
|
11
12
|
dependencies:
|
|
12
13
|
- !ruby/object:Gem::Dependency
|
|
13
14
|
name: json_schemer
|
|
@@ -88,6 +89,7 @@ metadata:
|
|
|
88
89
|
source_code_uri: https://github.com/HealthDataInsight/structured_store
|
|
89
90
|
changelog_uri: https://github.com/HealthDataInsight/structured_store/blob/main/CHANGELOG.md
|
|
90
91
|
rubygems_mfa_required: 'true'
|
|
92
|
+
post_install_message:
|
|
91
93
|
rdoc_options: []
|
|
92
94
|
require_paths:
|
|
93
95
|
- lib
|
|
@@ -102,7 +104,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
102
104
|
- !ruby/object:Gem::Version
|
|
103
105
|
version: '0'
|
|
104
106
|
requirements: []
|
|
105
|
-
rubygems_version: 3.
|
|
107
|
+
rubygems_version: 3.3.26
|
|
108
|
+
signing_key:
|
|
106
109
|
specification_version: 4
|
|
107
110
|
summary: Store JSON structured using versioned JSON Schemas.
|
|
108
111
|
test_files: []
|