activerecord-nulldb-adapter 1.1.1 → 1.2.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: af43f27ebeb1eb1c313923392e50c59a234c1942355422e614fb3026ecb3bb13
4
- data.tar.gz: 2c60b7ed36c6da832eaf7f0dcfd3e31c555a9735283903fed26e80f168a7905c
3
+ metadata.gz: 8ac9f7843f4785d671294e7e8972f4554dcbfc6d600d604883b0ca19d08ec7f4
4
+ data.tar.gz: 650cb1914d1c198222c5cfee766aec3fb73ba737315f6b3aa6f6c297203ccf31
5
5
  SHA512:
6
- metadata.gz: 8b09032c9f0421c412fab061201d1381a4fd3b265b5c8a00d5ced214201aade646ed7a9d8ae207c3c015aeb30cf7ddf5d21f429864262cb7a791f7a1c0ad8fb9
7
- data.tar.gz: 8792abf6acf27101e8fc0e1c3a2806a16e629d5cc14fd660a12833d1afff4aed679030948799646dd321746117f5f6282100f8ffa391b598f6f310f08466a93c
6
+ metadata.gz: f54127d749048e34ed4ecc921d85a200a71b2e84d582c947855a0d17165475e9d57f2b0cd238b8214fb05f8dbfa771040e00921fa852f5fb45c68012acf6856f
7
+ data.tar.gz: 114379440a0dbfa40a509fb79959b214ecc39aea59553f81f1fcbbd969959935d60f25aaab2e5aa443e7446f5c197c56f11e831d2773e7a6e2f457d50e7c43be
@@ -12,58 +12,48 @@ jobs:
12
12
  activerecord_7.1,
13
13
  activerecord_7.2,
14
14
  activerecord_8.0,
15
+ activerecord_8.1,
15
16
  activerecord_master,
16
17
  ]
17
- ruby: ["2.7", "3.0", "3.1", "3.2", "3.3", "jruby-9.3.1.0"]
18
+ ruby: ["2.7", "3.0", "3.1", "3.2", "3.3", "3.4", "jruby-9.4", "jruby-10"]
18
19
  exclude:
19
- - ruby: "jruby-9.3.1.0"
20
+ - ruby: "3.4"
21
+ gemfile: "activerecord_6.1"
22
+ - ruby: "3.4"
20
23
  gemfile: "activerecord_7.0"
21
-
22
- - ruby: "jruby-9.3.1.0"
24
+ - ruby: "jruby-9.4"
25
+ gemfile: "activerecord_7.1"
26
+ - ruby: "3.4"
23
27
  gemfile: "activerecord_7.1"
24
-
25
28
  - ruby: "2.7"
26
29
  gemfile: "activerecord_7.2"
27
-
28
- - ruby: "2.8"
29
- gemfile: "activerecord_7.2"
30
-
31
30
  - ruby: "3.0"
32
31
  gemfile: "activerecord_7.2"
33
-
34
- - ruby: "jruby-9.3.1.0"
35
- gemfile: "activerecord_7.2"
36
-
37
- - ruby: "2.7"
32
+ - ruby: "jruby-9.4"
38
33
  gemfile: "activerecord_8.0"
39
-
40
- - ruby: "2.8"
34
+ - ruby: "2.7"
41
35
  gemfile: "activerecord_8.0"
42
-
43
36
  - ruby: "3.0"
44
37
  gemfile: "activerecord_8.0"
45
-
46
38
  - ruby: "3.1"
47
39
  gemfile: "activerecord_8.0"
48
-
49
- - ruby: "jruby-9.3.1.0"
50
- gemfile: "activerecord_8.0"
51
-
40
+ - ruby: "jruby-9.4"
41
+ gemfile: "activerecord_8.1"
52
42
  - ruby: "2.7"
43
+ gemfile: "activerecord_8.1"
44
+ - ruby: "3.0"
45
+ gemfile: "activerecord_8.1"
46
+ - ruby: "3.1"
47
+ gemfile: "activerecord_8.1"
48
+ - ruby: "jruby-9.4"
53
49
  gemfile: "activerecord_master"
54
-
55
- - ruby: "2.8"
50
+ - ruby: "2.7"
56
51
  gemfile: "activerecord_master"
57
-
58
52
  - ruby: "3.0"
59
53
  gemfile: "activerecord_master"
60
-
61
54
  - ruby: "3.1"
62
55
  gemfile: "activerecord_master"
63
56
 
64
- - ruby: "jruby-9.3.1.0"
65
- gemfile: "activerecord_master"
66
-
67
57
  runs-on: ubuntu-latest
68
58
  env:
69
59
  BUNDLE_GEMFILE: gemfiles/${{ matrix.gemfile }}.gemfile
data/Appraisals CHANGED
@@ -22,6 +22,10 @@ appraise "activerecord-8.0" do
22
22
  gem "activerecord", github: 'rails/rails', branch: "8-0-stable"
23
23
  end
24
24
 
25
+ appraise "activerecord-8.1" do
26
+ gem "activerecord", github: 'rails/rails', branch: "8-1-stable"
27
+ end
28
+
25
29
  appraise "activerecord-master" do
26
30
  gem "activerecord", github: 'rails/rails', branch: :main
27
31
  end
data/CHANGES.md CHANGED
@@ -1,7 +1,11 @@
1
1
  Unreleased
2
2
  ----------
3
3
 
4
- 1.1.1 (20214-11-14)
4
+ 1.2.0 (2025-12-01)
5
+
6
+ - ActiveRecord 8.1 support #143
7
+
8
+ 1.1.1 (2024-11-14)
5
9
 
6
10
  - Fix syntax error on 2.7 and 3.0.
7
11
 
data/Gemfile CHANGED
@@ -1,6 +1,6 @@
1
1
  source "https://rubygems.org"
2
2
 
3
- gem 'activerecord', '>= 6.0', '< 8.1'
3
+ gem 'activerecord', '>= 6.1', '< 8.2'
4
4
 
5
5
  group :development, :test do
6
6
  gem 'spec'
data/README.md CHANGED
@@ -1,9 +1,5 @@
1
- [<img src="https://badge.fury.io/rb/activerecord-nulldb-adapter.png" alt="Gem
2
- Version" />](http://badge.fury.io/rb/activerecord-nulldb-adapter) [<img
3
- src="https://codeclimate.com/github/nulldb/nulldb.png"
4
- />](https://codeclimate.com/github/nulldb/nulldb) [<img
5
- src="https://github.com/nulldb/nulldb/workflows/build/badge.svg?branch=master"
6
- alt="Build Status" />](https://github.com/nulldb/nulldb/actions)
1
+ [<img src="https://badge.fury.io/rb/activerecord-nulldb-adapter.svg" alt="Gem
2
+ Version" />](http://badge.fury.io/rb/activerecord-nulldb-adapter) [![build](https://github.com/nulldb/nulldb/actions/workflows/ruby.yml/badge.svg)](https://github.com/nulldb/nulldb/actions/workflows/ruby.yml)
7
3
 
8
4
  # The NullDB Connection Adapter Plugin
9
5
 
@@ -20,7 +20,7 @@ Gem::Specification.new do |s|
20
20
  s.homepage = "https://github.com/nulldb/nulldb"
21
21
  s.licenses = ["MIT"]
22
22
 
23
- s.add_runtime_dependency 'activerecord', '>= 6.0', '< 8.1'
23
+ s.add_runtime_dependency 'activerecord', '>= 6.1', '< 8.2'
24
24
  s.add_development_dependency 'spec'
25
25
  s.add_development_dependency 'rdoc'
26
26
  s.add_development_dependency 'rspec'
@@ -3,6 +3,7 @@
3
3
  source "https://rubygems.org"
4
4
 
5
5
  gem "activerecord", "~> 6.1.0"
6
+ gem "concurrent-ruby", "1.3.4" # Locked, because "1.3.5" Removed Dependency used by ActiveRecord 6.1
6
7
 
7
8
  group :development, :test do
8
9
  gem "spec"
@@ -3,6 +3,7 @@
3
3
  source "https://rubygems.org"
4
4
 
5
5
  gem "activerecord", "~> 7.0.0"
6
+ gem "concurrent-ruby", "1.3.4" # Locked, because "1.3.5" Removed Dependency used by ActiveRecord 7.0
6
7
 
7
8
  group :development, :test do
8
9
  gem "spec"
@@ -2,7 +2,7 @@
2
2
 
3
3
  source "https://rubygems.org"
4
4
 
5
- gem "activerecord", github: "rails/rails", branch: "8-0-stable"
5
+ gem "activerecord", "~> 8.0.0"
6
6
 
7
7
  group :development, :test do
8
8
  gem "spec"
@@ -2,7 +2,7 @@
2
2
 
3
3
  source "https://rubygems.org"
4
4
 
5
- gem "activerecord", "~> 6.0.0"
5
+ gem "activerecord", "~> 8.1.0"
6
6
 
7
7
  group :development, :test do
8
8
  gem "spec"
@@ -15,3 +15,4 @@ group :development do
15
15
  gem "appraisal"
16
16
  gem "simplecov", require: false
17
17
  end
18
+
@@ -358,13 +358,34 @@ class ActiveRecord::ConnectionAdapters::NullDBAdapter < ActiveRecord::Connection
358
358
  end
359
359
  end
360
360
 
361
+ def native_database_types
362
+ {}
363
+ end
364
+
361
365
  def default_column_arguments(col_def)
362
- [
363
- col_def.name.to_s,
364
- col_def.default.present? ? col_def.default.to_s : nil,
365
- sql_type_definition(col_def),
366
- col_def.null.nil? || col_def.null
367
- ]
366
+ # ActiveRecord 8.1+ expects: name, cast_type, default, sql_type_metadata, null
367
+ # Earlier versions expect: name, default, sql_type_metadata, null
368
+ if ::ActiveRecord::VERSION::MAJOR >= 8 && ::ActiveRecord::VERSION::MINOR >= 1
369
+ cast_type = ActiveRecord::ConnectionAdapters::AbstractAdapter::TYPE_MAP.lookup(col_def.type.to_s)
370
+ sql_type_meta = sql_type_definition(col_def)
371
+
372
+ [
373
+ col_def.name.to_s,
374
+ cast_type,
375
+ col_def.default.present? ? col_def.default.to_s : nil,
376
+ sql_type_meta,
377
+ col_def.null.nil? || col_def.null
378
+ ]
379
+ else
380
+ sql_type_meta = sql_type_definition(col_def)
381
+
382
+ [
383
+ col_def.name.to_s,
384
+ col_def.default.present? ? col_def.default.to_s : nil,
385
+ sql_type_meta,
386
+ col_def.null.nil? || col_def.null
387
+ ]
388
+ end
368
389
  end
369
390
 
370
391
  def sql_type_definition(col_def)
@@ -1,3 +1,3 @@
1
1
  module NullDB
2
- VERSION = "1.1.1"
2
+ VERSION = "1.2.0"
3
3
  end
data/spec/nulldb_spec.rb CHANGED
@@ -124,8 +124,17 @@ describe "NullDB" do
124
124
  expect(Employee.columns_hash['name'].null).to be false
125
125
  end
126
126
 
127
- it "should stringify default values" do
128
- expect(Employee.columns_hash['active'].default).to eq "true"
127
+ # In ActiveRecord 8.1+, immutable default values are type-casted by the Column class
128
+ # For boolean columns for example, "true" is deserialized to true
129
+ # https://github.com/rails/rails/commit/205cdd5
130
+ if ActiveRecord::VERSION::MAJOR >= 8 && ActiveRecord::VERSION::MINOR >= 1
131
+ it "should deserialize immutable default values" do
132
+ expect(Employee.columns_hash['active'].default).to eq true
133
+ end
134
+ else
135
+ it "should stringify default values" do
136
+ expect(Employee.columns_hash['active'].default).to eq "true"
137
+ end
129
138
  end
130
139
 
131
140
  it "should have no default for employee_number" do
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: activerecord-nulldb-adapter
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.1
4
+ version: 1.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Avdi Grimm
@@ -10,7 +10,7 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2024-11-14 00:00:00.000000000 Z
13
+ date: 2025-12-01 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: activerecord
@@ -18,20 +18,20 @@ dependencies:
18
18
  requirements:
19
19
  - - ">="
20
20
  - !ruby/object:Gem::Version
21
- version: '6.0'
21
+ version: '6.1'
22
22
  - - "<"
23
23
  - !ruby/object:Gem::Version
24
- version: '8.1'
24
+ version: '8.2'
25
25
  type: :runtime
26
26
  prerelease: false
27
27
  version_requirements: !ruby/object:Gem::Requirement
28
28
  requirements:
29
29
  - - ">="
30
30
  - !ruby/object:Gem::Version
31
- version: '6.0'
31
+ version: '6.1'
32
32
  - - "<"
33
33
  - !ruby/object:Gem::Version
34
- version: '8.1'
34
+ version: '8.2'
35
35
  - !ruby/object:Gem::Dependency
36
36
  name: spec
37
37
  requirement: !ruby/object:Gem::Requirement
@@ -149,12 +149,12 @@ files:
149
149
  - README.md
150
150
  - Rakefile
151
151
  - activerecord-nulldb-adapter.gemspec
152
- - gemfiles/activerecord_6.0.gemfile
153
152
  - gemfiles/activerecord_6.1.gemfile
154
153
  - gemfiles/activerecord_7.0.gemfile
155
154
  - gemfiles/activerecord_7.1.gemfile
156
155
  - gemfiles/activerecord_7.2.gemfile
157
156
  - gemfiles/activerecord_8.0.gemfile
157
+ - gemfiles/activerecord_8.1.gemfile
158
158
  - gemfiles/activerecord_master.gemfile
159
159
  - lib/active_record/connection_adapters/nulldb_adapter.rb
160
160
  - lib/active_record/connection_adapters/nulldb_adapter/checkpoint.rb
@@ -198,7 +198,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
198
198
  - !ruby/object:Gem::Version
199
199
  version: '0'
200
200
  requirements: []
201
- rubygems_version: 3.3.26
201
+ rubygems_version: 3.1.6
202
202
  signing_key:
203
203
  specification_version: 4
204
204
  summary: The Null Object pattern as applied to ActiveRecord database adapters