active_typed_store 1.2.0 → 1.3.0

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: 81b1efdd481c9034944b0b3ad6acb8972492128a13197a5054d291ee1b2e23ae
4
- data.tar.gz: 8af315be7e55e6af5bba99f126b1abf26217f3634aef8aae708abf0887270c5c
3
+ metadata.gz: c00294f06d7b42ef340d56715c9e86525be7ce1c1aea054fed1faf11b7d6d7bf
4
+ data.tar.gz: 271d28763908598806ff221a292f9a88d4b773909da217cdec13199d8d7a0a20
5
5
  SHA512:
6
- metadata.gz: 7dd04ad99513208826305d50e04b558778800b4ce3dbc6873193d995eb638b48a36c84c20b3a9c57dda18af7503751b48d9af291c6d720314ddf60a988f41b8c
7
- data.tar.gz: eb4103cf2a62dc935a4cb283896083710f66a60146a5e4086c4fbcf57d215d52e88f5102f744aded09fa4291e1e62afca3375cadc05cf5c2dcbf6e72e9652995
6
+ metadata.gz: 2d26d57a57f40f3b02007a3033990a1102183043e184e8a25406ef7afbf7b3e884f3a3c7b529be25b05c253042ddfb4503b9ef1279a12ac99914577167c96a9a
7
+ data.tar.gz: 11a1002a926fd01f00bc6b922aff49cde6847f66f38260275c0f45127f75484a67280be86716b0873de70b29cf7894b5b2bd3d44334e95d7a8a9e341a575cbe9
data/Gemfile.lock CHANGED
@@ -142,6 +142,7 @@ GEM
142
142
  PLATFORMS
143
143
  arm64-darwin-21
144
144
  arm64-darwin-23
145
+ arm64-darwin-24
145
146
  x86_64-darwin-21
146
147
  x86_64-linux
147
148
 
@@ -5,7 +5,7 @@ module ActiveTypedStore
5
5
  attr_reader :fields, :store_module, :store_attribute
6
6
 
7
7
  def initialize(store_attribute)
8
- @store_attribute = store_attribute
8
+ @store_attribute = store_attribute.is_a?(Symbol) ? store_attribute.name : store_attribute
9
9
  @fields = []
10
10
  @store_module = Module.new
11
11
  end
@@ -50,9 +50,14 @@ module ActiveTypedStore
50
50
  cache_val =
51
51
  if val.nil? && !default.nil?
52
52
  is_changed = attribute_changed?(store_attribute)
53
- stored_value = self[store_attribute][field] = default.dup
54
- clear_attribute_change(store_attribute) unless is_changed
55
- stored_value
53
+ self[store_attribute][field] = default.dup
54
+
55
+ if is_changed
56
+ self[store_attribute][field]
57
+ else
58
+ # for discard changes
59
+ @attributes.write_from_database(store_attribute, self[store_attribute]).value[field]
60
+ end
56
61
  elsif type.respond_to?(:cast)
57
62
  casted = type.cast(val)
58
63
  casted.eql?(val) ? val : casted
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module ActiveTypedStore
4
- VERSION = "1.2.0"
4
+ VERSION = "1.3.0"
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: active_typed_store
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.2.0
4
+ version: 1.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ermolaev Andrey
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2024-10-22 00:00:00.000000000 Z
11
+ date: 2025-05-26 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activemodel
@@ -94,8 +94,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
94
94
  - !ruby/object:Gem::Version
95
95
  version: '0'
96
96
  requirements: []
97
- rubygems_version: 3.3.17
97
+ rubygems_version: 3.3.7
98
98
  signing_key:
99
99
  specification_version: 4
100
- summary: Typed store for active records json/hstore columns
100
+ summary: Typed store for active records json columns (postgresql, mysql, sqlite)
101
101
  test_files: []