activerecord-bitemporal 4.2.0 → 4.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 +4 -4
- data/CHANGELOG.md +18 -0
- data/lib/activerecord-bitemporal/bitemporal.rb +7 -1
- data/lib/activerecord-bitemporal/version.rb +1 -1
- data/lib/activerecord-bitemporal.rb +6 -0
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: ff0157d808949658d0eb00a07b819670383ace1c7896537f6b6e5dfeda9e6c32
|
4
|
+
data.tar.gz: 1e14b06aac74ca12b3db6ee75144078eef8e793eda6048c7179fd8ef3025b01d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 6e6ba80c96e30d975d5a1fe5edff0f631e8e4793d98c97e0c859d57948f5919d5aa47ab2990a456712888e8e25913bb370fc0bf3640c9d04eef3686774a00370
|
7
|
+
data.tar.gz: cd5d42d05eb0efe13355906b1547f86605aa1e327d1fae87aebb83475c4fe4162f2cba00875e92e6dcc497451d8a6c0bbe8bfffcbad543c972e5b229a05d0a60
|
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,23 @@
|
|
1
1
|
# Changelog
|
2
2
|
|
3
|
+
## 4.3.0
|
4
|
+
|
5
|
+
### Added
|
6
|
+
|
7
|
+
- [Add `previously_force_updated?` #142](https://github.com/kufu/activerecord-bitemporal/pull/142)
|
8
|
+
|
9
|
+
### Changed
|
10
|
+
|
11
|
+
### Deprecated
|
12
|
+
|
13
|
+
### Removed
|
14
|
+
|
15
|
+
### Fixed
|
16
|
+
|
17
|
+
### Chores
|
18
|
+
|
19
|
+
- [Remove unneeded spec for Rails 5.x #143](https://github.com/kufu/activerecord-bitemporal/pull/143)
|
20
|
+
|
3
21
|
## 4.2.0
|
4
22
|
|
5
23
|
### Added
|
@@ -277,12 +277,13 @@ module ActiveRecord
|
|
277
277
|
end
|
278
278
|
|
279
279
|
refine ActiveRecord::Base do
|
280
|
-
# MEMO: Do not copy
|
280
|
+
# MEMO: Do not copy bitemporal internal status
|
281
281
|
def dup(*)
|
282
282
|
super.tap { |itself|
|
283
283
|
itself.instance_exec do
|
284
284
|
@_swapped_id_previously_was = nil
|
285
285
|
@_swapped_id = nil
|
286
|
+
@previously_force_updated = false
|
286
287
|
end unless itself.frozen?
|
287
288
|
}
|
288
289
|
end
|
@@ -320,6 +321,7 @@ module ActiveRecord
|
|
320
321
|
before_instance&.save_without_bitemporal_callbacks!(validate: false)
|
321
322
|
# NOTE: after_instance always exists
|
322
323
|
after_instance.save_without_bitemporal_callbacks!(validate: false)
|
324
|
+
@previously_force_updated = self.force_update?
|
323
325
|
|
324
326
|
# update 後に新しく生成したインスタンスのデータを移行する
|
325
327
|
@_swapped_id_previously_was = swapped_id
|
@@ -345,6 +347,7 @@ module ActiveRecord
|
|
345
347
|
@destroyed = false
|
346
348
|
_run_destroy_callbacks {
|
347
349
|
@destroyed = update_transaction_to(operated_at)
|
350
|
+
@previously_force_updated = force_update?
|
348
351
|
|
349
352
|
# force_update の場合は削除時の状態の履歴を残さない
|
350
353
|
unless force_update?
|
@@ -397,6 +400,7 @@ module ActiveRecord
|
|
397
400
|
# NOTE: Hook to copying swapped_id
|
398
401
|
@_swapped_id_previously_was = nil
|
399
402
|
@_swapped_id = fresh_object.swapped_id
|
403
|
+
@previously_force_updated = false
|
400
404
|
self
|
401
405
|
end
|
402
406
|
elsif Gem::Version.new("6.1.0") <= ActiveRecord.version
|
@@ -420,6 +424,7 @@ module ActiveRecord
|
|
420
424
|
# NOTE: Hook to copying swapped_id
|
421
425
|
@_swapped_id_previously_was = nil
|
422
426
|
@_swapped_id = fresh_object.swapped_id
|
427
|
+
@previously_force_updated = false
|
423
428
|
self
|
424
429
|
end
|
425
430
|
else
|
@@ -442,6 +447,7 @@ module ActiveRecord
|
|
442
447
|
# NOTE: Hook to copying swapped_id
|
443
448
|
@_swapped_id_previously_was = nil
|
444
449
|
@_swapped_id = fresh_object.swapped_id
|
450
|
+
@previously_force_updated = false
|
445
451
|
self
|
446
452
|
end
|
447
453
|
end
|
@@ -104,6 +104,10 @@ module ActiveRecord::Bitemporal::Bitemporalize
|
|
104
104
|
swapped_id.presence || super
|
105
105
|
end
|
106
106
|
|
107
|
+
def previously_force_updated?
|
108
|
+
@previously_force_updated
|
109
|
+
end
|
110
|
+
|
107
111
|
def valid_from_cannot_be_greater_equal_than_valid_to
|
108
112
|
if valid_from && valid_to && valid_from >= valid_to
|
109
113
|
errors.add(:valid_from, "can't be greater equal than valid_to")
|
@@ -141,10 +145,12 @@ module ActiveRecord::Bitemporal::Bitemporalize
|
|
141
145
|
# MEMO: #update_columns is not call #_update_row (and validations, callbacks)
|
142
146
|
update_columns(bitemporal_id_key => swapped_id) unless send(bitemporal_id_key)
|
143
147
|
swap_id!(without_clear_changes_information: true)
|
148
|
+
@previously_force_updated = false
|
144
149
|
end
|
145
150
|
|
146
151
|
after_find do
|
147
152
|
self.swap_id! if self.send(bitemporal_id_key).present?
|
153
|
+
@previously_force_updated = false
|
148
154
|
end
|
149
155
|
|
150
156
|
# Callback hook to `validates :xxx, uniqueness: true`
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: activerecord-bitemporal
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 4.
|
4
|
+
version: 4.3.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- SmartHR
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2023-
|
11
|
+
date: 2023-08-08 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activerecord
|