temporal_tables 3.0.0 → 3.0.1

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: 3ce2b662e846d6d42ccb774dc89abd731e3f7d43ca77f94347df8312df0fb543
4
- data.tar.gz: 25fd0c42c5e37dd35c0a2abbcaff994b6e1d54eefaa04a6e579a01260885cec3
3
+ metadata.gz: 263d71547d60d6a668202ad900b21ee8d683615dd4afc096e37a9d9a53489b33
4
+ data.tar.gz: acc012e82bd6deae7872b22fb80ee8d6dbea27cf53f73dd9b87fb303015540ce
5
5
  SHA512:
6
- metadata.gz: 53b4b4680d68cf772b3d38430f93ce340226740747ea8825a87a1fe9953b24c26135ed2cbfb3ae840d608992a7bb4cf169ff07d6fc980744fb683153912ef2ca
7
- data.tar.gz: 9a1558d7ab3c79973314f1f7c74498d77ba901e3d608415028bdee79c618b77ad25e5f39f0f62a4ce249e2ef53b007461eeaa54a506da3cbf625999fe6d02903
6
+ metadata.gz: f4543bec2427c87c59f2c0df7edea2fbaa6072ae583584c8bbcf54ea60e8de2e03ec290c0375ba91608a0cd32aec00ac11106ae0391b8632b03f60170dcffdd5
7
+ data.tar.gz: 0dc70cd60fc891be32c8f22f440bf3ed6ede26c5c1e6b5f028d3930166c1fcb92df528930364d0e8983bb9dd9128596ea2b64f5d48efd5c3af1373d1f2505e4a
@@ -1,8 +1,8 @@
1
1
  PATH
2
2
  remote: ..
3
3
  specs:
4
- temporal_tables (3.0.0)
5
- rails (>= 6.0, < 7.2)
4
+ temporal_tables (3.0.1)
5
+ rails (>= 6.1, < 7.2)
6
6
 
7
7
  GEM
8
8
  remote: https://rubygems.org/
@@ -1,8 +1,8 @@
1
1
  PATH
2
2
  remote: ..
3
3
  specs:
4
- temporal_tables (3.0.0)
5
- rails (>= 6.0, < 7.2)
4
+ temporal_tables (3.0.1)
5
+ rails (>= 6.1, < 7.2)
6
6
 
7
7
  GEM
8
8
  remote: https://rubygems.org/
@@ -1,8 +1,8 @@
1
1
  PATH
2
2
  remote: ..
3
3
  specs:
4
- temporal_tables (3.0.0)
5
- rails (>= 6.0, < 7.2)
4
+ temporal_tables (3.0.1)
5
+ rails (>= 6.1, < 7.2)
6
6
 
7
7
  GEM
8
8
  remote: https://rubygems.org/
@@ -1,8 +1,8 @@
1
1
  PATH
2
2
  remote: ..
3
3
  specs:
4
- temporal_tables (3.0.0)
5
- rails (>= 6.0, < 7.2)
4
+ temporal_tables (3.0.1)
5
+ rails (>= 6.1, < 7.2)
6
6
 
7
7
  GEM
8
8
  remote: https://rubygems.org/
@@ -1,8 +1,8 @@
1
1
  PATH
2
2
  remote: ..
3
3
  specs:
4
- temporal_tables (3.0.0)
5
- rails (>= 6.0, < 7.2)
4
+ temporal_tables (3.0.1)
5
+ rails (>= 6.1, < 7.2)
6
6
 
7
7
  GEM
8
8
  remote: https://rubygems.org/
@@ -1,8 +1,8 @@
1
1
  PATH
2
2
  remote: ..
3
3
  specs:
4
- temporal_tables (3.0.0)
5
- rails (>= 6.0, < 7.2)
4
+ temporal_tables (3.0.1)
5
+ rails (>= 6.1, < 7.2)
6
6
 
7
7
  GEM
8
8
  remote: https://rubygems.org/
@@ -42,8 +42,7 @@ module TemporalTables
42
42
  association.macro, association.name,
43
43
  **association.options.merge(
44
44
  class_name: clazz.name,
45
- foreign_key: association.foreign_key,
46
- primary_key: clazz.orig_class.primary_key
45
+ foreign_key: association.foreign_key
47
46
  )
48
47
  )
49
48
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module TemporalTables
4
- VERSION = '3.0.0'
4
+ VERSION = '3.0.1'
5
5
  end
@@ -264,3 +264,19 @@ describe Bird do
264
264
  end
265
265
  end
266
266
  end
267
+
268
+ describe Hamster do
269
+ context 'with tables that have non-default primary key names' do
270
+ let(:hamster) { Hamster.create name: 'Fluffy' }
271
+ let(:wheel) { HamsterWheel.create hamster: hamster }
272
+
273
+ it 'can create instance of class with nested class name with history entries' do
274
+ expect(hamster).not_to be_nil
275
+ expect(wheel).not_to be_nil
276
+ expect(hamster.hamster_wheel).not_to be_nil
277
+ hamster_history = Hamster.history.at(Time.now.utc).first
278
+ expect(hamster_history).not_to be_nil
279
+ expect(hamster_history.hamster_wheel).not_to be_nil
280
+ end
281
+ end
282
+ end
@@ -0,0 +1,7 @@
1
+ # frozen_string_literal: true
2
+
3
+ class Hamster < ActiveRecord::Base
4
+ self.primary_key = :uuid
5
+
6
+ has_one :hamster_wheel, foreign_key: :hamster_uuid, inverse_of: :hamster
7
+ end
@@ -0,0 +1,5 @@
1
+ # frozen_string_literal: true
2
+
3
+ class HamsterWheel < ActiveRecord::Base
4
+ belongs_to :hamster, foreign_key: :hamster_uuid, primary_key: :uuid, inverse_of: :hamster_wheel
5
+ end
@@ -69,4 +69,22 @@ ActiveRecord::Schema.define do
69
69
  t.belongs_to :bird, type: (postgres ? :uuid : :integer)
70
70
  t.integer :height
71
71
  end
72
+
73
+ if postgres
74
+ create_table :hamsters, id: false do |t|
75
+ t.column :uuid, :uuid, default: 'gen_random_uuid()'
76
+ t.string :name
77
+ end
78
+ execute 'ALTER TABLE hamsters ADD PRIMARY KEY (uuid);'
79
+ add_temporal_table :hamsters
80
+ else
81
+ create_table :hamsters, primary_key: :uuid, temporal: true do |t|
82
+ t.string :name
83
+ end
84
+ end
85
+
86
+ create_table :hamster_wheels, id: (postgres ? :uuid : :integer), temporal: true do |t|
87
+ t.column :hamster_uuid, (postgres ? :uuid : :bigint), null: false
88
+ t.foreign_key :hamsters, column: :hamster_uuid, primary_key: :uuid
89
+ end
72
90
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: temporal_tables
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.0.0
4
+ version: 3.0.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Brent Kroeker
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2024-01-11 00:00:00.000000000 Z
11
+ date: 2024-02-20 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
@@ -224,6 +224,8 @@ files:
224
224
  - spec/internal/app/models/coven.rb
225
225
  - spec/internal/app/models/dog.rb
226
226
  - spec/internal/app/models/flying_machine.rb
227
+ - spec/internal/app/models/hamster.rb
228
+ - spec/internal/app/models/hamster_wheel.rb
227
229
  - spec/internal/app/models/person.rb
228
230
  - spec/internal/app/models/rocket_broom.rb
229
231
  - spec/internal/app/models/wart.rb
@@ -268,6 +270,8 @@ test_files:
268
270
  - spec/internal/app/models/coven.rb
269
271
  - spec/internal/app/models/dog.rb
270
272
  - spec/internal/app/models/flying_machine.rb
273
+ - spec/internal/app/models/hamster.rb
274
+ - spec/internal/app/models/hamster_wheel.rb
271
275
  - spec/internal/app/models/person.rb
272
276
  - spec/internal/app/models/rocket_broom.rb
273
277
  - spec/internal/app/models/wart.rb