activerecord-bitemporal 2.2.0 → 3.0.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 0f295f51427b6b8fad97d0c36e84946cb705aad3d1d8bbff9a18b92df60cc083
4
- data.tar.gz: 44003988d2c2dd02e4133a4d6ffbd233167793a9d5fac5bd5d1056fff3c97f42
3
+ metadata.gz: 6034ded2e7c8b1ec28b1632ba21f6245c0e2dc6a96786294bc6883c0cc8bbbcb
4
+ data.tar.gz: 3b6fca0b70c57242aa69136b5d41e7438603a0b30d1dd658ccbbebff8dd3d73d
5
5
  SHA512:
6
- metadata.gz: 2ebc5d5e6933952e285e3a88f5d8fc03a919ef9c79e0106845362c09c3e73520f24b863a404f9b9a9ef1cfc94e4af48184f7e82345dfa6544bbde5f06555b646
7
- data.tar.gz: c83ffc5f27d54e8dfed0aaa051922a20b16b8bcba78c556d9568fc71fb15c7d54b0e9713984a150015001469188e826ee5cfb54e41e89d6bea37e1be7d8422ff
6
+ metadata.gz: 6783cd51d729e2beb9ab8a8f67039ca2258bee3ad1258b7cf96f8d2b9a86d33daaa3aa6db18b96fdc277b6ee69a224c85d26d47ac5d54fb581c8685e1c4a1459
7
+ data.tar.gz: 4b57fe700e248b0e630cc73959f6817b66977bc93e018445ea0c95e363b28bea770ba5869d4261a5031ae9609c78a883adf98aef821ecba942225e31fa32c991
data/CHANGELOG.md CHANGED
@@ -1,5 +1,35 @@
1
1
  # Changelog
2
2
 
3
+ ## 3.0.0
4
+
5
+ ### Breaking Changed
6
+ - [Assign updated bitemporal times to the receiver after update/destroy](https://github.com/kufu/activerecord-bitemporal/pull/118)
7
+
8
+ ### Added
9
+
10
+ ### Changed
11
+
12
+ ### Deprecated
13
+
14
+ ### Removed
15
+
16
+ ### Fixed
17
+
18
+ ## 2.3.0
19
+
20
+ ### Breaking Changed
21
+
22
+ ### Added
23
+ - [Add `InstanceMethods#swapped_id_previously_was`](https://github.com/kufu/activerecord-bitemporal/pull/114)
24
+
25
+ ### Changed
26
+
27
+ ### Deprecated
28
+
29
+ ### Removed
30
+
31
+ ### Fixed
32
+
3
33
  ## 2.2.0
4
34
 
5
35
  ### Breaking Changed
data/Gemfile.lock CHANGED
@@ -1,36 +1,35 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- activerecord-bitemporal (0.1.0)
4
+ activerecord-bitemporal (3.0.0)
5
5
  activerecord (>= 5.2)
6
6
 
7
7
  GEM
8
8
  remote: https://rubygems.org/
9
9
  specs:
10
- activemodel (6.1.3)
11
- activesupport (= 6.1.3)
12
- activerecord (6.1.3)
13
- activemodel (= 6.1.3)
14
- activesupport (= 6.1.3)
15
- activesupport (6.1.3)
10
+ activemodel (7.0.4.2)
11
+ activesupport (= 7.0.4.2)
12
+ activerecord (7.0.4.2)
13
+ activemodel (= 7.0.4.2)
14
+ activesupport (= 7.0.4.2)
15
+ activesupport (7.0.4.2)
16
16
  concurrent-ruby (~> 1.0, >= 1.0.2)
17
17
  i18n (>= 1.6, < 2)
18
18
  minitest (>= 5.1)
19
19
  tzinfo (~> 2.0)
20
- zeitwerk (~> 2.3)
21
20
  appraisal (2.2.0)
22
21
  bundler
23
22
  rake
24
23
  thor (>= 0.14.0)
25
24
  byebug (10.0.2)
26
25
  coderay (1.1.2)
27
- concurrent-ruby (1.1.8)
26
+ concurrent-ruby (1.2.0)
28
27
  database_cleaner (1.7.0)
29
28
  diff-lcs (1.3)
30
- i18n (1.8.9)
29
+ i18n (1.12.0)
31
30
  concurrent-ruby (~> 1.0)
32
31
  method_source (0.9.0)
33
- minitest (5.14.4)
32
+ minitest (5.17.0)
34
33
  pg (1.1.3)
35
34
  pry (0.11.3)
36
35
  coderay (~> 1.1.0)
@@ -54,9 +53,8 @@ GEM
54
53
  rspec-support (3.8.0)
55
54
  thor (0.20.3)
56
55
  timecop (0.9.1)
57
- tzinfo (2.0.4)
56
+ tzinfo (2.0.6)
58
57
  concurrent-ruby (~> 1.0)
59
- zeitwerk (2.4.2)
60
58
 
61
59
  PLATFORMS
62
60
  ruby
@@ -280,7 +280,10 @@ module ActiveRecord
280
280
  # MEMO: Do not copy `swapped_id`
281
281
  def dup(*)
282
282
  super.tap { |itself|
283
- itself.instance_exec { @_swapped_id = nil } unless itself.frozen?
283
+ itself.instance_exec do
284
+ @_swapped_id_previously_was = nil
285
+ @_swapped_id = nil
286
+ end unless itself.frozen?
284
287
  }
285
288
  end
286
289
  end
@@ -319,9 +322,12 @@ module ActiveRecord
319
322
  after_instance.save!(validate: false)
320
323
 
321
324
  # update 後に新しく生成したインスタンスのデータを移行する
325
+ @_swapped_id_previously_was = swapped_id
322
326
  @_swapped_id = after_instance.swapped_id
323
327
  self.valid_from = after_instance.valid_from
324
328
  self.valid_to = after_instance.valid_to
329
+ self.transaction_from = after_instance.transaction_from
330
+ self.transaction_to = after_instance.transaction_to
325
331
 
326
332
  1
327
333
  # MEMO: Must return false instead of nil, if `#_update_row` failure.
@@ -345,7 +351,14 @@ module ActiveRecord
345
351
  duplicated_instance.valid_to = target_datetime
346
352
  duplicated_instance.transaction_from = current_time
347
353
  duplicated_instance.save!(validate: false)
348
- @_swapped_id = duplicated_instance.swapped_id if @destroyed
354
+ if @destroyed
355
+ @_swapped_id_previously_was = swapped_id
356
+ @_swapped_id = duplicated_instance.swapped_id
357
+ self.valid_from = duplicated_instance.valid_from
358
+ self.valid_to = duplicated_instance.valid_to
359
+ self.transaction_from = duplicated_instance.transaction_from
360
+ self.transaction_to = duplicated_instance.transaction_to
361
+ end
349
362
  }
350
363
  raise ActiveRecord::RecordInvalid unless @destroyed
351
364
 
@@ -380,6 +393,7 @@ module ActiveRecord
380
393
  @new_record = false
381
394
  @previously_new_record = false
382
395
  # NOTE: Hook to copying swapped_id
396
+ @_swapped_id_previously_was = nil
383
397
  @_swapped_id = fresh_object.swapped_id
384
398
  self
385
399
  end
@@ -402,6 +416,7 @@ module ActiveRecord
402
416
  @new_record = false
403
417
  @previously_new_record = false
404
418
  # NOTE: Hook to copying swapped_id
419
+ @_swapped_id_previously_was = nil
405
420
  @_swapped_id = fresh_object.swapped_id
406
421
  self
407
422
  end
@@ -423,6 +438,7 @@ module ActiveRecord
423
438
  @attributes = fresh_object.instance_variable_get("@attributes")
424
439
  @new_record = false
425
440
  # NOTE: Hook to copying swapped_id
441
+ @_swapped_id_previously_was = nil
426
442
  @_swapped_id = fresh_object.swapped_id
427
443
  self
428
444
  end
@@ -2,6 +2,6 @@
2
2
 
3
3
  module ActiveRecord
4
4
  module Bitemporal
5
- VERSION = "2.2.0"
5
+ VERSION = "3.0.0"
6
6
  end
7
7
  end
@@ -76,6 +76,7 @@ module ActiveRecord::Bitemporal::Bitemporalize
76
76
  include ActiveRecord::Bitemporal::Persistence
77
77
 
78
78
  def swap_id!(without_clear_changes_information: false)
79
+ @_swapped_id_previously_was = nil
79
80
  @_swapped_id = self.id
80
81
  self.id = self.send(bitemporal_id_key)
81
82
  clear_attribute_changes([:id]) unless without_clear_changes_information
@@ -85,6 +86,10 @@ module ActiveRecord::Bitemporal::Bitemporalize
85
86
  @_swapped_id || self.id
86
87
  end
87
88
 
89
+ def swapped_id_previously_was
90
+ @_swapped_id_previously_was
91
+ end
92
+
88
93
  def bitemporal_id_key
89
94
  self.class.bitemporal_id_key
90
95
  end
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: 2.2.0
4
+ version: 3.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - SmartHR
8
- autorequire:
8
+ autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2023-01-16 00:00:00.000000000 Z
11
+ date: 2023-02-01 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activerecord
@@ -174,7 +174,7 @@ homepage: https://github.com/kufu/activerecord-bitemporal
174
174
  licenses:
175
175
  - Apache 2.0
176
176
  metadata: {}
177
- post_install_message:
177
+ post_install_message:
178
178
  rdoc_options: []
179
179
  require_paths:
180
180
  - lib
@@ -189,8 +189,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
189
189
  - !ruby/object:Gem::Version
190
190
  version: '0'
191
191
  requirements: []
192
- rubygems_version: 3.4.3
193
- signing_key:
192
+ rubygems_version: 3.1.6
193
+ signing_key:
194
194
  specification_version: 4
195
195
  summary: BiTemporal Data Model for ActiveRecord
196
196
  test_files: []