store_attribute 0.9.0 → 0.9.1
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/CHANGELOG.md +4 -0
- data/lib/store_attribute/active_record/store.rb +19 -20
- data/lib/store_attribute/version.rb +1 -1
- metadata +4 -32
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 5de07480a22b55413fe34512b0d36a6572da92390c998dcc1ad7838866667e5c
|
4
|
+
data.tar.gz: 78d3d38f95d1f614f6d9233f0a0bfa52b67a65853f741fedbb8ff510e38e6988
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 3831baa1c5de7d7dee01dfe5ee0be5a1478b95a2e110c37e1c9ebd405c1246e300cc4eadbbf0b3e83742c8ea258db7399ddd0dc3df10c8797e7b911428bbd3e9
|
7
|
+
data.tar.gz: 774eb359b1ba5e02022f7e931089990f0d169116cbd8f9c725bc7f8bfa8189dce9c649ca3b7b3face0eccbca13b73dbb2a1028ab6f282dfe797b65adffab627c
|
data/CHANGELOG.md
CHANGED
@@ -6,7 +6,7 @@ require "store_attribute/active_record/type/typed_store"
|
|
6
6
|
module ActiveRecord
|
7
7
|
module Store
|
8
8
|
module ClassMethods # :nodoc:
|
9
|
-
|
9
|
+
alias_method :_orig_store, :store
|
10
10
|
# Defines store on this model.
|
11
11
|
#
|
12
12
|
# +store_name+ The name of the store.
|
@@ -63,25 +63,6 @@ module ActiveRecord
|
|
63
63
|
|
64
64
|
_prepare_local_stored_attributes(store_name, *keys)
|
65
65
|
|
66
|
-
_store_accessors_module.module_eval do
|
67
|
-
define_method("changes") do
|
68
|
-
return @changes if defined?(@changes)
|
69
|
-
changes = super()
|
70
|
-
self.class.local_stored_attributes.each do |accessor, attributes|
|
71
|
-
next unless attribute_changed?(accessor)
|
72
|
-
|
73
|
-
prev_store, new_store = changes[accessor]
|
74
|
-
prev_store.each do |key, value|
|
75
|
-
if new_store[key] == value
|
76
|
-
changes[accessor][0].except!(key)
|
77
|
-
changes[accessor][1].except!(key)
|
78
|
-
end
|
79
|
-
end
|
80
|
-
end
|
81
|
-
@changes = changes
|
82
|
-
end
|
83
|
-
end
|
84
|
-
|
85
66
|
_define_dirty_tracking_methods(store_name, keys + typed_keys.keys, prefix: accessor_prefix, suffix: accessor_suffix)
|
86
67
|
|
87
68
|
typed_keys.each do |key, type|
|
@@ -204,6 +185,24 @@ module ActiveRecord
|
|
204
185
|
|
205
186
|
def _define_dirty_tracking_methods(store_attribute, keys, prefix: nil, suffix: nil)
|
206
187
|
_store_accessors_module.module_eval do
|
188
|
+
define_method("changes") do
|
189
|
+
return @changes if defined?(@changes)
|
190
|
+
changes = super()
|
191
|
+
self.class.local_stored_attributes.each do |accessor, attributes|
|
192
|
+
next unless attribute_changed?(accessor)
|
193
|
+
|
194
|
+
prev_store, new_store = changes[accessor]
|
195
|
+
|
196
|
+
prev_store&.each do |key, value|
|
197
|
+
if new_store[key] == value
|
198
|
+
prev_store.except!(key)
|
199
|
+
new_store&.except!(key)
|
200
|
+
end
|
201
|
+
end
|
202
|
+
end
|
203
|
+
@changes = changes
|
204
|
+
end
|
205
|
+
|
207
206
|
keys.flatten.each do |key|
|
208
207
|
key = key.to_s
|
209
208
|
accessor_key = "#{prefix}#{key}#{suffix}"
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: store_attribute
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.9.
|
4
|
+
version: 0.9.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- palkan
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2021-
|
11
|
+
date: 2021-09-27 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activerecord
|
@@ -52,34 +52,6 @@ dependencies:
|
|
52
52
|
- - ">="
|
53
53
|
- !ruby/object:Gem::Version
|
54
54
|
version: '13.0'
|
55
|
-
- !ruby/object:Gem::Dependency
|
56
|
-
name: rubocop-md
|
57
|
-
requirement: !ruby/object:Gem::Requirement
|
58
|
-
requirements:
|
59
|
-
- - "~>"
|
60
|
-
- !ruby/object:Gem::Version
|
61
|
-
version: '0.3'
|
62
|
-
type: :development
|
63
|
-
prerelease: false
|
64
|
-
version_requirements: !ruby/object:Gem::Requirement
|
65
|
-
requirements:
|
66
|
-
- - "~>"
|
67
|
-
- !ruby/object:Gem::Version
|
68
|
-
version: '0.3'
|
69
|
-
- !ruby/object:Gem::Dependency
|
70
|
-
name: standard
|
71
|
-
requirement: !ruby/object:Gem::Requirement
|
72
|
-
requirements:
|
73
|
-
- - "~>"
|
74
|
-
- !ruby/object:Gem::Version
|
75
|
-
version: 0.2.0
|
76
|
-
type: :development
|
77
|
-
prerelease: false
|
78
|
-
version_requirements: !ruby/object:Gem::Requirement
|
79
|
-
requirements:
|
80
|
-
- - "~>"
|
81
|
-
- !ruby/object:Gem::Version
|
82
|
-
version: 0.2.0
|
83
55
|
- !ruby/object:Gem::Dependency
|
84
56
|
name: rspec
|
85
57
|
requirement: !ruby/object:Gem::Requirement
|
@@ -126,14 +98,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
126
98
|
requirements:
|
127
99
|
- - ">="
|
128
100
|
- !ruby/object:Gem::Version
|
129
|
-
version: 2.
|
101
|
+
version: 2.5.0
|
130
102
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
131
103
|
requirements:
|
132
104
|
- - ">="
|
133
105
|
- !ruby/object:Gem::Version
|
134
106
|
version: '0'
|
135
107
|
requirements: []
|
136
|
-
rubygems_version: 3.2.
|
108
|
+
rubygems_version: 3.2.22
|
137
109
|
signing_key:
|
138
110
|
specification_version: 4
|
139
111
|
summary: ActiveRecord extension which adds typecasting to store accessors
|