typed_uuid 4.1 → 4.2

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: 9dd0a928d842b001570b023cace562666b6f391623fd27ca1c6b88cebd58ed3a
4
- data.tar.gz: '09ea1aee57794d976b79c8bd221e1894519994603f8112bd4ffb55966b3082c6'
3
+ metadata.gz: 4f970db2e5a0edffaa90e664113f7cc9ecde9a1c217301cb53f132994e74a18d
4
+ data.tar.gz: 8762a572a7b9ade2cecdb282a90b6fe030ad547305207c7c616674dd4772ace3
5
5
  SHA512:
6
- metadata.gz: 5123b6d3291005d87ae8ed4fd1fefe9b55f10d83cde474367d9e136ff625a80a7bae221584a92c297f3a32e2b33e5a0c81bb3124b7acacb4bd82a28df94e4e82
7
- data.tar.gz: 7e96e3a5376fdcd87ba3a0c89e0e1511707000d280aa17c52d618d6f7c150eb3ff33bf23102c6dfdbfe04b6b91dccf94f984d94d66e38b3830c89c23516ce805
6
+ metadata.gz: 662ddc5ed10e7a43eff50ff0aadf4ada9d43490f2c5370045aa2e4f41a64ef5d58cb8cc33cb8452104106de51a30abf6d950766a8bf8d019fa329e4716bbd689
7
+ data.tar.gz: 6ba7853a8853d37479d5eba8e11ca48d3b64e0c98ff7b1dd05ad9c1c635d2c3d34be06da4219ff76ca68d232d93ed88b4b01428b3e570342096d27961024307d
@@ -1,28 +1,49 @@
1
1
  name: CI
2
2
 
3
- on:
3
+ on:
4
4
  push:
5
- branches: [ master ]
6
5
  pull_request:
7
- branches: [ master ]
6
+ types: [opened]
8
7
 
9
8
  jobs:
10
9
  test:
11
10
  name: TypedUUID Test
12
- runs-on: ubuntu-20.04
11
+ runs-on: ubuntu-22.04
12
+ strategy:
13
+ matrix:
14
+ rails-version:
15
+ - 7.0.8
16
+ - 7.1.2
17
+ ruby-version:
18
+ - 3.0
19
+ - 3.1
20
+ - 3.2
21
+ postgres-version:
22
+ - 15
13
23
 
14
24
  steps:
15
- - uses: ruby/setup-ruby@v1
16
- with:
17
- ruby-version: 3.0
25
+ - name: Install Postgresql
26
+ run: |
27
+ sudo apt-get -y --purge remove $(sudo apt list --installed | grep postgresql | awk '{print $1}')
28
+ sudo apt-get install curl ca-certificates gnupg
29
+ curl https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -
30
+ sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list'
31
+ sudo apt-get update
32
+ sudo apt-get -y install postgresql-${{ matrix.postgres-version }}-postgis-3
33
+ sudo systemctl start postgresql@${{ matrix.postgres-version }}-main.service
34
+ sudo systemctl status postgresql@${{ matrix.postgres-version }}-main.service
35
+ sudo pg_lsclusters
36
+ sudo -u postgres createuser runner --superuser
37
+ sudo -u postgres psql -c "ALTER USER runner WITH PASSWORD 'runner';"
18
38
 
19
- - uses: actions/checkout@v2
39
+ - uses: actions/checkout@v4
20
40
 
21
41
  - run: |
22
- sudo systemctl start postgresql.service
23
- sudo -u postgres createuser runner --superuser
24
- sudo -u postgres createdb uuid-types-test
42
+ echo 'gem "rails", "${{ matrix.rails-version }}"' >> Gemfile
25
43
 
26
- - run: bundle
44
+ - uses: ruby/setup-ruby@v1
45
+ with:
46
+ ruby-version: ${{ matrix.ruby-version }}
47
+ bundler-cache: true # runs 'bundle install' and caches installed gems automatically
27
48
 
28
49
  - run: bundle exec rake test
data/Gemfile CHANGED
@@ -1,3 +1,3 @@
1
1
  source "https://rubygems.org"
2
2
 
3
- gemspec
3
+ gemspec
data/README.md CHANGED
@@ -31,9 +31,9 @@ Typed UUID will give us back the ENUM and Version of the Type using soley the UU
31
31
  As with regular UUID Typed UUIDs come in multiple version. The current versions are:
32
32
 
33
33
  - Version 1: A timebased UUID where the first 56 bits are an unsigned integer
34
- representing the microseconds since epoch. Followed by 48 random
35
- bits or a sequence counter. Then 8 random bits followed by 16 bits
36
- which are the UUID type.
34
+ representing the microseconds since epoch. Followed by 56 random
35
+ bits or a sequence counter. Followed by 16 bits which are the UUID
36
+ type.
37
37
 
38
38
  - Version 3: A name-based UUID where the first 112 bits are based off the MD5
39
39
  digest of the namespace and name. The following 16 bits are the
@@ -12,8 +12,8 @@ class AddTypedUuidFunction < ActiveRecord::Migration[6.0]
12
12
  BEGIN
13
13
  IF version = 1 THEN
14
14
  bytes := decode(concat(
15
- lpad(right(to_hex((extract(epoch from clock_timestamp())*1000000)::bigint), 12), 12, '0'),
16
- encode(gen_random_bytes(10), 'hex')
15
+ lpad(right(to_hex((extract(epoch from clock_timestamp())*1000000)::bigint), 14), 14, '0'),
16
+ encode(gen_random_bytes(9), 'hex')
17
17
  ), 'hex');
18
18
  ELSE
19
19
  bytes := gen_random_bytes(16);
@@ -117,10 +117,7 @@ module TypedUUID::ActiveRecord
117
117
  Rails.application.eager_load! if !Rails.application.config.eager_load
118
118
 
119
119
  ::ActiveRecord::Base.descendants.find do |klass|
120
- next unless ( klass.superclass == ::ActiveRecord::Base || klass.superclass.abstract_class? )
121
- next if klass.table_name.nil?
122
-
123
- klass.table_name == table
120
+ (klass.table_name || klass.send(:compute_table_name)) == table
124
121
  end
125
122
  end
126
123
 
@@ -4,7 +4,6 @@ module TypedUUID::PsqlColumnMethods
4
4
  if type == :typed_uuid
5
5
  klass_type_enum = ::ActiveRecord::Base.uuid_enum_from_table_name(self.name)
6
6
  klass_type_version = ::ActiveRecord::Base.uuid_version_from_table_name(self.name)
7
- options[:id] = :uuid
8
7
  options[:default] ||= -> { "typed_uuid(#{klass_type_enum}, #{klass_type_version})" }
9
8
  super(name, :uuid, **options)
10
9
  else
@@ -14,8 +14,8 @@ module TypedUUID::PsqlSchemaDumper
14
14
  BEGIN
15
15
  IF version = 1 THEN
16
16
  bytes := decode(concat(
17
- lpad(right(to_hex((extract(epoch from clock_timestamp())*1000000)::bigint), 12), 12, '0'),
18
- encode(gen_random_bytes(10), 'hex')
17
+ lpad(right(to_hex((extract(epoch from clock_timestamp())*1000000)::bigint), 14), 14, '0'),
18
+ encode(gen_random_bytes(9), 'hex')
19
19
  ), 'hex');
20
20
  ELSE
21
21
  bytes := gen_random_bytes(16);
@@ -1,7 +1,7 @@
1
1
  class TypedUUID::Railtie < Rails::Railtie
2
2
 
3
3
  initializer :typed_uuid do |app|
4
- ActiveRecord::Tasks::DatabaseTasks.migrations_paths << File.expand_path('../../../db/migrate', __FILE__)
4
+ ActiveRecord::Tasks::DatabaseTasks.migrations_paths << TypedUUID::MIGRATIONS_PATH
5
5
 
6
6
  ActiveSupport.on_load(:active_record) do
7
7
  ActiveRecord::Base.include TypedUUID::ActiveRecord
@@ -1,3 +1,3 @@
1
1
  module TypedUUID
2
- VERSION = '4.1'
2
+ VERSION = '4.2'
3
3
  end
data/lib/typed_uuid.rb CHANGED
@@ -1,6 +1,8 @@
1
1
  require 'digest/sha1'
2
2
 
3
3
  module TypedUUID
4
+ MIGRATIONS_PATH = File.expand_path('../../db/migrate', __FILE__)
5
+
4
6
  autoload :ActiveRecord, 'typed_uuid/active_record'
5
7
  autoload :PsqlColumnMethods, 'typed_uuid/psql_column_methods'
6
8
  autoload :PsqlSchemaDumper, 'typed_uuid/psql_schema_dumper'
@@ -39,21 +41,21 @@ module TypedUUID
39
41
  SecureRandom.random_bytes(8)
40
42
  elsif sequence.is_a?(Integer)
41
43
  sequence = [sequence].pack("Q>")
42
- if sequence.bytesize == 8 && sequence[0..1] == "\x00\x00"
43
- sequence[2..]
44
+ if sequence.bytesize == 8 && sequence[0] == "\x00"
45
+ sequence[1..]
44
46
  else
45
- raise ArgumentError, 'Sequence is more than 6 bytes'
47
+ raise ArgumentError, 'Sequence must be less than 8 bytes'
46
48
  end
47
49
  elsif sequence.is_a?(String)
48
- raise ArgumentError, 'Sequence is more than 6 bytes' if sequence.bytesize > 6
50
+ raise ArgumentError, 'Sequence must be less than 8 bytes' if sequence.bytesize > 7
49
51
  sequence.b
50
52
  else
51
53
  raise ArgumentError, 'Unable to convert sequence to binary'
52
54
  end
53
- uuid << SecureRandom.random_bytes(4)
55
+ uuid << "\x00\x00"
54
56
 
55
57
  uuid = uuid.unpack("nnnnnnnn")
56
- uuid[7] = (uuid[2] ^ uuid[6]) ^ ((enum << 3) | 1)
58
+ uuid[7] = ((uuid[2] ^ uuid[6]) ^ ((enum << 3) | 1))
57
59
  "%04x%04x-%04x-%04x-%04x-%04x%04x%04x" % uuid
58
60
  end
59
61
 
@@ -80,11 +82,11 @@ module TypedUUID
80
82
 
81
83
  def sequence_b(uuid)
82
84
  uuid = uuid.gsub('-', '')
83
- uuid[14..25].scan(/.{4}/).map{|i| i.to_i(16) }.pack('n*').b
85
+ uuid[14..30].scan(/.{4}/).map{|i| i.to_i(16) }.pack('n*').b[0..-2]
84
86
  end
85
-
87
+
86
88
  def sequence(uuid)
87
- ("\x00\x00" + sequence_b(uuid)).unpack1('Q>')
89
+ ("\x00" + sequence_b(uuid)).unpack1('Q>')
88
90
  end
89
91
 
90
92
  end
@@ -0,0 +1,116 @@
1
+ require 'test_helper'
2
+
3
+ class DatabaseFunctionTest < ActiveSupport::TestCase
4
+
5
+ schema do
6
+ ActiveRecord::Base.register_uuid_types({
7
+ 'DatabaseFunctionTest::Ship' => {enum: 13, version: 1}
8
+ })
9
+
10
+ create_table :ships, id: :typed_uuid do |t|
11
+ t.string "name", limit: 255
12
+ end
13
+ end
14
+
15
+ class Ship < ActiveRecord::Base
16
+ end
17
+
18
+ class Sailor < ActiveRecord::Base
19
+ end
20
+
21
+ class Sea < ActiveRecord::Base
22
+ end
23
+
24
+ class ApplicationRecord < ActiveRecord::Base
25
+ primary_abstract_class
26
+ end
27
+
28
+ class Bird < ApplicationRecord
29
+ self.abstract_class = true
30
+ end
31
+
32
+ class Emu < Bird
33
+ end
34
+
35
+ test 'adding primary key as a typed_uuid in a migration' do
36
+ ActiveRecord::Base.register_uuid_types({
37
+ 1 => 'DatabaseFunctionTest::Sailor'
38
+ })
39
+
40
+ exprexted_sql = <<-SQL
41
+ CREATE TABLE "sailors" ("id" uuid DEFAULT typed_uuid(1, 4) NOT NULL PRIMARY KEY, "name" character varying(255))
42
+ SQL
43
+
44
+ assert_sql exprexted_sql do
45
+ ActiveRecord::Migration.suppress_messages do
46
+ ActiveRecord::Migration.create_table :sailors, id: :typed_uuid do |t|
47
+ t.string "name", limit: 255
48
+ end
49
+ end
50
+ end
51
+ end
52
+
53
+ test 'adding primary key as a typed_uuid in a migration with a version' do
54
+ ActiveRecord::Base.register_uuid_types({
55
+ 'DatabaseFunctionTest::Sea' => {version: 1, enum: 512}
56
+ })
57
+
58
+ exprexted_sql = <<-SQL
59
+ CREATE TABLE "seas" ("id" uuid DEFAULT typed_uuid(512, 1) NOT NULL PRIMARY KEY, "name" character varying(255))
60
+ SQL
61
+
62
+ assert_sql exprexted_sql do
63
+ ActiveRecord::Migration.suppress_messages do
64
+ ActiveRecord::Migration.create_table :seas, id: :typed_uuid do |t|
65
+ t.string "name", limit: 255
66
+ end
67
+ end
68
+ end
69
+ end
70
+
71
+ test 'adding primary key as a typed_uuid in a migration to a STI table' do
72
+ ActiveRecord::Base.register_uuid_types({
73
+ 30 => 'DatabaseFunctionTest::Bird',
74
+ 31 => 'DatabaseFunctionTest::Emu'
75
+ })
76
+
77
+ exprexted_sql = <<-SQL
78
+ CREATE TABLE "birds" ("id" uuid DEFAULT typed_uuid(30, 4) NOT NULL PRIMARY KEY, "name" character varying(255))
79
+ SQL
80
+
81
+ assert_sql exprexted_sql do
82
+ ActiveRecord::Migration.suppress_messages do
83
+ ActiveRecord::Migration.create_table :birds, id: :typed_uuid do |t|
84
+ t.string "name", limit: 255
85
+ end
86
+ end
87
+ end
88
+ end
89
+
90
+ test 'typed_uuid(enum)' do
91
+ uuid = ActiveRecord::Base.connection.execute('SELECT typed_uuid(13) AS uuid')[0]['uuid']
92
+
93
+ assert_equal 13, TypedUUID.enum(uuid)
94
+ assert_equal 4, TypedUUID.version(uuid)
95
+ assert_equal DatabaseFunctionTest::Ship, ::ActiveRecord::Base.class_from_uuid(uuid)
96
+ end
97
+
98
+ test 'typed_uuid(enum, 4)' do
99
+ uuid = ActiveRecord::Base.connection.execute('SELECT typed_uuid(13, 4) AS uuid')[0]['uuid']
100
+
101
+ assert_equal 13, TypedUUID.enum(uuid)
102
+ assert_equal 4, TypedUUID.version(uuid)
103
+ assert_equal DatabaseFunctionTest::Ship, ::ActiveRecord::Base.class_from_uuid(uuid)
104
+ end
105
+
106
+ test 'typed_uuid(enum, 1)' do
107
+ time = Time.now
108
+ uuid = ActiveRecord::Base.connection.execute('SELECT typed_uuid(13, 1) AS uuid')[0]['uuid']
109
+
110
+ assert_equal 13, TypedUUID.enum(uuid)
111
+ assert_equal 1, TypedUUID.version(uuid)
112
+ assert (time.ceil(0) - TypedUUID.timestamp(uuid).ceil(0)).abs <= 1
113
+ assert_equal DatabaseFunctionTest::Ship, ::ActiveRecord::Base.class_from_uuid(uuid)
114
+ end
115
+
116
+ end
data/test/test_helper.rb CHANGED
@@ -28,9 +28,7 @@ module ActiveRecord::Tasks::DatabaseTasks
28
28
  end
29
29
  TypedUUID::Railtie.initializers.each(&:run)
30
30
  Minitest::Reporters.use! Minitest::Reporters::SpecReporter.new
31
- def MiniTest.filter_backtrace(bt)
32
- bt
33
- end
31
+
34
32
  class ActiveSupport::TestCase
35
33
 
36
34
  # File 'lib/active_support/testing/declarative.rb'
@@ -67,7 +65,8 @@ class ActiveSupport::TestCase
67
65
  ActiveRecord::Base.establish_connection(configuration)
68
66
 
69
67
  db_tasks = ActiveRecord::Tasks::PostgreSQLDatabaseTasks.new(ActiveRecord::Base.connection_db_config)
70
- db_tasks.purge
68
+ db_tasks.drop
69
+ db_tasks.create
71
70
 
72
71
  ActiveRecord::Migration.suppress_messages do
73
72
  AddTypedUuidFunction.migrate :up
@@ -103,18 +102,15 @@ class ActiveSupport::TestCase
103
102
  if patterns_to_match.all? { |s| s.is_a?(String) } && patterns_to_match.size > 1
104
103
  assert_equal(*patterns_to_match.take(2).map { |sql| sql.gsub(/( +|\n\s*|\s+)/, ' ').strip })
105
104
  else
106
- begin
107
- ret_value = nil
108
- capture_sql { ret_value = yield }
109
- ret_value
110
- ensure
111
- patterns_to_match.map! {|p| p.is_a?(String) ? p.gsub(/( +|\n\s*|\s+)/, ' ').strip : p }
112
- failed_patterns = []
113
- patterns_to_match.each do |pattern|
114
- failed_patterns << pattern unless SQLLogger.log_all.any?{ |sql| pattern === sql.gsub(/( +|\n\s*|\s+)/, ' ').strip }
115
- end
116
- assert failed_patterns.empty?, "Query pattern(s) #{failed_patterns.map(&:inspect).join(', ')} not found.#{SQLLogger.log.size == 0 ? '' : "\nQueries:\n#{SQLLogger.log.join("\n")}"}"
105
+ ret_value = nil
106
+ capture_sql { ret_value = yield }
107
+ patterns_to_match.map! {|p| p.is_a?(String) ? p.gsub(/( +|\n\s*|\s+)/, ' ').strip : p }
108
+ failed_patterns = []
109
+ patterns_to_match.each do |pattern|
110
+ failed_patterns << pattern unless SQLLogger.log_all.any?{ |sql| pattern === sql.gsub(/( +|\n\s*|\s+)/, ' ').strip }
117
111
  end
112
+ assert failed_patterns.empty?, "Query pattern(s) #{failed_patterns.map(&:inspect).join(', ')} not found.#{SQLLogger.log.size == 0 ? '' : "\nQueries:\n#{SQLLogger.log.join("\n")}"}"
113
+ ret_value
118
114
  end
119
115
  end
120
116
 
@@ -102,7 +102,7 @@ class UUIDTest < ActiveSupport::TestCase
102
102
 
103
103
  assert_equal Listing, ::ActiveRecord::Base.class_from_uuid(Listing.typed_uuid)
104
104
  end
105
-
105
+
106
106
  test 'typed_uuid v1 with a timestamp' do
107
107
  time = Time.at(1606612254, 370979, :usec)
108
108
  uuid = TypedUUID.uuid(592, 1, timestamp: time)
@@ -116,27 +116,37 @@ class UUIDTest < ActiveSupport::TestCase
116
116
 
117
117
  assert_equal Listing, ::ActiveRecord::Base.class_from_uuid(Listing.typed_uuid)
118
118
  end
119
-
119
+
120
120
  test 'typed_uuid v1 with sequence as a string' do
121
- uuid = TypedUUID.uuid(592, 1, sequence: '123456')
121
+ uuid = TypedUUID.uuid(592, 1, sequence: '1234567')
122
122
 
123
123
  assert_equal 1, TypedUUID.version(uuid)
124
124
  assert_equal 592, TypedUUID.enum(uuid)
125
- assert_equal 54091677185334, TypedUUID.sequence(uuid)
126
- assert_equal '123456', TypedUUID.sequence_b(uuid)
125
+ assert_equal '1234567', TypedUUID.sequence_b(uuid)
126
+ assert_equal 13847469359445559, TypedUUID.sequence(uuid)
127
+
127
128
 
128
129
  assert_equal Listing, ::ActiveRecord::Base.class_from_uuid(Listing.typed_uuid)
129
130
  end
130
-
131
+
131
132
  test 'typed_uuid v1 with sequence as a integer' do
132
133
  uuid = TypedUUID.uuid(592, 1, sequence: 123456)
133
134
 
134
135
  assert_equal 1, TypedUUID.version(uuid)
135
136
  assert_equal 592, TypedUUID.enum(uuid)
136
137
  assert_equal 123456, TypedUUID.sequence(uuid)
137
- assert_equal "\x00\x00\x00\x01\xE2@".b, TypedUUID.sequence_b(uuid)
138
+ assert_equal "\x00\x00\x00\x00\x01\xE2@".b, TypedUUID.sequence_b(uuid)
138
139
 
139
140
  assert_equal Listing, ::ActiveRecord::Base.class_from_uuid(Listing.typed_uuid)
141
+
142
+ [0, 1, 72057594037927935].each do |seq|
143
+ uuid = TypedUUID.uuid(592, 1, sequence: seq)
144
+ assert_equal seq, TypedUUID.sequence(uuid)
145
+ end
146
+
147
+ assert_raises ArgumentError do
148
+ TypedUUID.uuid(592, 1, sequence: 72057594037927936)
149
+ end
140
150
  end
141
151
 
142
152
  test 'class_from uuid generated bye PostgresQL' do
data/typed_uuid.gemspec CHANGED
@@ -22,10 +22,10 @@ Gem::Specification.new do |s|
22
22
  s.add_development_dependency 'simplecov'
23
23
  s.add_development_dependency 'mocha'
24
24
  s.add_development_dependency 'byebug'
25
- s.add_development_dependency 'activesupport', '>= 6.0.0'
26
- s.add_development_dependency 'rails', '>= 6.1.0'
25
+ s.add_development_dependency 'activesupport', '>= 7.0.0'
26
+ s.add_development_dependency 'rails', '>= 7.0.0'
27
27
  s.add_development_dependency 'pg'
28
28
 
29
29
  # Runtime
30
- s.add_runtime_dependency 'activerecord', '>= 6.1.0'
30
+ s.add_runtime_dependency 'activerecord', '>= 7.0.0'
31
31
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: typed_uuid
3
3
  version: !ruby/object:Gem::Version
4
- version: '4.1'
4
+ version: '4.2'
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jon Bracy
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-09-29 00:00:00.000000000 Z
11
+ date: 2023-12-05 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rake
@@ -114,28 +114,28 @@ dependencies:
114
114
  requirements:
115
115
  - - ">="
116
116
  - !ruby/object:Gem::Version
117
- version: 6.0.0
117
+ version: 7.0.0
118
118
  type: :development
119
119
  prerelease: false
120
120
  version_requirements: !ruby/object:Gem::Requirement
121
121
  requirements:
122
122
  - - ">="
123
123
  - !ruby/object:Gem::Version
124
- version: 6.0.0
124
+ version: 7.0.0
125
125
  - !ruby/object:Gem::Dependency
126
126
  name: rails
127
127
  requirement: !ruby/object:Gem::Requirement
128
128
  requirements:
129
129
  - - ">="
130
130
  - !ruby/object:Gem::Version
131
- version: 6.1.0
131
+ version: 7.0.0
132
132
  type: :development
133
133
  prerelease: false
134
134
  version_requirements: !ruby/object:Gem::Requirement
135
135
  requirements:
136
136
  - - ">="
137
137
  - !ruby/object:Gem::Version
138
- version: 6.1.0
138
+ version: 7.0.0
139
139
  - !ruby/object:Gem::Dependency
140
140
  name: pg
141
141
  requirement: !ruby/object:Gem::Requirement
@@ -156,14 +156,14 @@ dependencies:
156
156
  requirements:
157
157
  - - ">="
158
158
  - !ruby/object:Gem::Version
159
- version: 6.1.0
159
+ version: 7.0.0
160
160
  type: :runtime
161
161
  prerelease: false
162
162
  version_requirements: !ruby/object:Gem::Requirement
163
163
  requirements:
164
164
  - - ">="
165
165
  - !ruby/object:Gem::Version
166
- version: 6.1.0
166
+ version: 7.0.0
167
167
  description: Typed UUIDs 2 bytes are reserved in the UUID for the class enum
168
168
  email:
169
169
  - jonbracy@gmail.com
@@ -185,6 +185,7 @@ files:
185
185
  - lib/typed_uuid/psql_schema_dumper.rb
186
186
  - lib/typed_uuid/railtie.rb
187
187
  - lib/typed_uuid/version.rb
188
+ - test/database_function_test.rb
188
189
  - test/test_helper.rb
189
190
  - test/typed_uuid_test.rb
190
191
  - typed_uuid.gemspec
@@ -206,10 +207,11 @@ required_rubygems_version: !ruby/object:Gem::Requirement
206
207
  - !ruby/object:Gem::Version
207
208
  version: '0'
208
209
  requirements: []
209
- rubygems_version: 3.2.3
210
+ rubygems_version: 3.4.13
210
211
  signing_key:
211
212
  specification_version: 4
212
213
  summary: Typed UUIDs for ActiveRecord
213
214
  test_files:
215
+ - test/database_function_test.rb
214
216
  - test/test_helper.rb
215
217
  - test/typed_uuid_test.rb