activerecord-nulldb-adapter 1.1.0 → 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 +4 -4
- data/.github/workflows/ruby.yml +19 -29
- data/Appraisals +4 -0
- data/CHANGES.md +8 -0
- data/Gemfile +1 -1
- data/README.md +2 -6
- data/activerecord-nulldb-adapter.gemspec +1 -1
- data/gemfiles/activerecord_6.1.gemfile +1 -0
- data/gemfiles/activerecord_7.0.gemfile +1 -0
- data/gemfiles/activerecord_8.0.gemfile +1 -1
- data/gemfiles/{activerecord_6.0.gemfile → activerecord_8.1.gemfile} +2 -1
- data/lib/active_record/connection_adapters/nulldb_adapter/core.rb +27 -6
- data/lib/active_record/connection_adapters/nulldb_adapter/table_definition.rb +1 -1
- data/lib/nulldb/version.rb +1 -1
- data/spec/nulldb_spec.rb +11 -2
- metadata +8 -8
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 8ac9f7843f4785d671294e7e8972f4554dcbfc6d600d604883b0ca19d08ec7f4
|
|
4
|
+
data.tar.gz: 650cb1914d1c198222c5cfee766aec3fb73ba737315f6b3aa6f6c297203ccf31
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: f54127d749048e34ed4ecc921d85a200a71b2e84d582c947855a0d17165475e9d57f2b0cd238b8214fb05f8dbfa771040e00921fa852f5fb45c68012acf6856f
|
|
7
|
+
data.tar.gz: 114379440a0dbfa40a509fb79959b214ecc39aea59553f81f1fcbbd969959935d60f25aaab2e5aa443e7446f5c197c56f11e831d2773e7a6e2f457d50e7c43be
|
data/.github/workflows/ruby.yml
CHANGED
|
@@ -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.
|
|
18
|
+
ruby: ["2.7", "3.0", "3.1", "3.2", "3.3", "3.4", "jruby-9.4", "jruby-10"]
|
|
18
19
|
exclude:
|
|
19
|
-
- ruby: "
|
|
20
|
+
- ruby: "3.4"
|
|
21
|
+
gemfile: "activerecord_6.1"
|
|
22
|
+
- ruby: "3.4"
|
|
20
23
|
gemfile: "activerecord_7.0"
|
|
21
|
-
|
|
22
|
-
|
|
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
|
-
|
|
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
data/Gemfile
CHANGED
data/README.md
CHANGED
|
@@ -1,9 +1,5 @@
|
|
|
1
|
-
[<img src="https://badge.fury.io/rb/activerecord-nulldb-adapter.
|
|
2
|
-
Version" />](http://badge.fury.io/rb/activerecord-nulldb-adapter) [
|
|
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) [](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.
|
|
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'
|
|
@@ -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
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
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)
|
|
@@ -13,7 +13,7 @@ class ActiveRecord::ConnectionAdapters::NullDBAdapter
|
|
|
13
13
|
alias_method :jsonb, :json if method_defined? :json
|
|
14
14
|
alias_method :hstore, :json
|
|
15
15
|
|
|
16
|
-
def unique_constraint(
|
|
16
|
+
def unique_constraint(*args, **kwargs, &block); end
|
|
17
17
|
|
|
18
18
|
if ::ActiveRecord::VERSION::MAJOR >= 7 && ::ActiveRecord::VERSION::MINOR >= 1
|
|
19
19
|
# Avoid check for option validity
|
data/lib/nulldb/version.rb
CHANGED
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
|
-
|
|
128
|
-
|
|
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.
|
|
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:
|
|
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.
|
|
21
|
+
version: '6.1'
|
|
22
22
|
- - "<"
|
|
23
23
|
- !ruby/object:Gem::Version
|
|
24
|
-
version: '8.
|
|
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.
|
|
31
|
+
version: '6.1'
|
|
32
32
|
- - "<"
|
|
33
33
|
- !ruby/object:Gem::Version
|
|
34
|
-
version: '8.
|
|
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.
|
|
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
|