activerecord-import 1.7.0 → 1.8.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.github/workflows/test.yaml +6 -10
- data/.rubocop.yml +3 -0
- data/CHANGELOG.md +12 -0
- data/activerecord-import.gemspec +4 -0
- data/benchmarks/lib/cli_parser.rb +1 -1
- data/gemfiles/7.2.gemfile +3 -0
- data/lib/activerecord-import/import.rb +4 -2
- data/lib/activerecord-import/version.rb +1 -1
- data/test/models/topic.rb +1 -1
- data/test/models/widget.rb +10 -3
- metadata +9 -7
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 021d7d0d5b653ef01a5ab1aa23b72cca6f46abc65040014ad02fa790976f0189
|
4
|
+
data.tar.gz: a5440146848bc1bfee194681b9bf53f928150936c3c992eaec1299fec2e7c1bb
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 460961724684bc286a63ff0880ee8279a5a1528cd02ebd28e4694b8d7c39c22f19183f929ecd525de57a5069bf45218428aae47fd96ea5782e7b51a85aee0e1f
|
7
|
+
data.tar.gz: b864f8eb6fc2a074497761813f29aca981ec23daa7ae12164f1b34a08bbad6175025e6a551575ef2f53f7521f13d15de02eccb24f36c2e18dcdb04fdf77e53a7
|
data/.github/workflows/test.yaml
CHANGED
@@ -36,6 +36,8 @@ jobs:
|
|
36
36
|
ruby:
|
37
37
|
- 3.3
|
38
38
|
env:
|
39
|
+
- AR_VERSION: '7.2'
|
40
|
+
RUBYOPT: --enable-frozen-string-literal
|
39
41
|
- AR_VERSION: '7.1'
|
40
42
|
RUBYOPT: --enable-frozen-string-literal
|
41
43
|
- AR_VERSION: '7.0'
|
@@ -43,6 +45,9 @@ jobs:
|
|
43
45
|
- AR_VERSION: 6.1
|
44
46
|
RUBYOPT: --enable-frozen-string-literal
|
45
47
|
include:
|
48
|
+
- ruby: 3.2
|
49
|
+
env:
|
50
|
+
AR_VERSION: '7.2'
|
46
51
|
- ruby: 3.2
|
47
52
|
env:
|
48
53
|
AR_VERSION: '7.1'
|
@@ -85,15 +90,6 @@ jobs:
|
|
85
90
|
- ruby: 2.6
|
86
91
|
env:
|
87
92
|
AR_VERSION: 5.2
|
88
|
-
- ruby: 2.6
|
89
|
-
env:
|
90
|
-
AR_VERSION: 5.1
|
91
|
-
- ruby: 2.4
|
92
|
-
env:
|
93
|
-
AR_VERSION: '5.0'
|
94
|
-
- ruby: 2.4
|
95
|
-
env:
|
96
|
-
AR_VERSION: 4.2
|
97
93
|
runs-on: ubuntu-latest
|
98
94
|
env:
|
99
95
|
AR_VERSION: ${{ matrix.env.AR_VERSION }}
|
@@ -145,7 +141,7 @@ jobs:
|
|
145
141
|
- uses: actions/checkout@v4
|
146
142
|
- uses: ruby/setup-ruby@v1
|
147
143
|
with:
|
148
|
-
ruby-version:
|
144
|
+
ruby-version: 3.0
|
149
145
|
bundler-cache: true
|
150
146
|
- name: Run Rubocop
|
151
147
|
run: bundle exec rubocop
|
data/.rubocop.yml
CHANGED
data/CHANGELOG.md
CHANGED
@@ -1,3 +1,15 @@
|
|
1
|
+
## Changes in 1.8.1
|
2
|
+
|
3
|
+
### Fixes
|
4
|
+
|
5
|
+
* Further update for ActiveRecord 7.2 compatibility when running validations. Thanks to @denisahearn via \##847.
|
6
|
+
|
7
|
+
## Changes in 1.8.0
|
8
|
+
|
9
|
+
### New Features
|
10
|
+
|
11
|
+
* Add support for ActiveRecord 7.2 via \##845.
|
12
|
+
|
1
13
|
## Changes in 1.7.0
|
2
14
|
|
3
15
|
### New Features
|
data/activerecord-import.gemspec
CHANGED
@@ -10,6 +10,10 @@ Gem::Specification.new do |gem|
|
|
10
10
|
gem.homepage = "https://github.com/zdennis/activerecord-import"
|
11
11
|
gem.license = "MIT"
|
12
12
|
|
13
|
+
gem.metadata = {
|
14
|
+
"changelog_uri" => "https://github.com/zdennis/activerecord-import/blob/master/CHANGELOG.md"
|
15
|
+
}
|
16
|
+
|
13
17
|
gem.files = `git ls-files`.split($\)
|
14
18
|
gem.executables = gem.files.grep(%r{^bin/}).map { |f| File.basename(f) }
|
15
19
|
gem.test_files = gem.files.grep(%r{^(test|spec|features)/})
|
@@ -10,7 +10,7 @@ require 'ostruct'
|
|
10
10
|
# * t - the table types to test. ie: myisam, innodb, memory, temporary, etc.
|
11
11
|
#
|
12
12
|
module BenchmarkOptionParser
|
13
|
-
BANNER = "Usage: ruby #{$0} [options]\nSee ruby #{$0} -h for more options."
|
13
|
+
BANNER = "Usage: ruby #{$0} [options]\nSee ruby #{$0} -h for more options.".freeze
|
14
14
|
|
15
15
|
def self.print_banner
|
16
16
|
puts BANNER
|
@@ -62,6 +62,7 @@ module ActiveRecord::Import # :nodoc:
|
|
62
62
|
if @validate_callbacks.respond_to?(:chain, true)
|
63
63
|
@validate_callbacks.send(:chain).tap do |chain|
|
64
64
|
callback.instance_variable_set(:@filter, filter)
|
65
|
+
callback.instance_variable_set(:@compiled, nil)
|
65
66
|
chain[i] = callback
|
66
67
|
end
|
67
68
|
else
|
@@ -93,7 +94,7 @@ module ActiveRecord::Import # :nodoc:
|
|
93
94
|
env = ActiveSupport::Callbacks::Filters::Environment.new(model, false, nil)
|
94
95
|
if runner.respond_to?(:call) # ActiveRecord < 5.1
|
95
96
|
runner.call(env)
|
96
|
-
else # ActiveRecord 5.1
|
97
|
+
else # ActiveRecord >= 5.1
|
97
98
|
# Note that this is a gross simplification of ActiveSupport::Callbacks#run_callbacks.
|
98
99
|
# It's technically possible for there to exist an "around" callback in the
|
99
100
|
# :validate chain, but this would be an aberration, since Rails doesn't define
|
@@ -106,7 +107,8 @@ module ActiveRecord::Import # :nodoc:
|
|
106
107
|
# no real-world use case for it.
|
107
108
|
raise "The :validate callback chain contains an 'around' callback, which is unsupported" unless runner.final?
|
108
109
|
runner.invoke_before(env)
|
109
|
-
|
110
|
+
# Ensure a truthy value is returned. ActiveRecord < 7.2 always returned an array.
|
111
|
+
runner.invoke_after(env) || []
|
110
112
|
end
|
111
113
|
elsif @validate_callbacks.method(:compile).arity == 0 # ActiveRecord = 4.0
|
112
114
|
model.instance_eval @validate_callbacks.compile
|
data/test/models/topic.rb
CHANGED
data/test/models/widget.rb
CHANGED
@@ -19,8 +19,15 @@ class Widget < ActiveRecord::Base
|
|
19
19
|
|
20
20
|
default_scope -> { where(active: true) }
|
21
21
|
|
22
|
-
|
23
|
-
|
22
|
+
if ENV['AR_VERSION'].to_f >= 7.1
|
23
|
+
serialize :data, coder: YAML
|
24
|
+
serialize :json_data, coder: JSON
|
25
|
+
serialize :custom_data, coder: CustomCoder.new
|
26
|
+
else
|
27
|
+
serialize :data, Hash
|
28
|
+
serialize :json_data, JSON
|
29
|
+
serialize :custom_data, CustomCoder.new
|
30
|
+
end
|
31
|
+
|
24
32
|
serialize :unspecified_data
|
25
|
-
serialize :custom_data, CustomCoder.new
|
26
33
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: activerecord-import
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.8.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Zach Dennis
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2024-
|
11
|
+
date: 2024-09-06 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activerecord
|
@@ -78,6 +78,7 @@ files:
|
|
78
78
|
- gemfiles/6.1.gemfile
|
79
79
|
- gemfiles/7.0.gemfile
|
80
80
|
- gemfiles/7.1.gemfile
|
81
|
+
- gemfiles/7.2.gemfile
|
81
82
|
- lib/activerecord-import.rb
|
82
83
|
- lib/activerecord-import/active_record/adapters/abstract_adapter.rb
|
83
84
|
- lib/activerecord-import/active_record/adapters/jdbcmysql_adapter.rb
|
@@ -184,8 +185,9 @@ files:
|
|
184
185
|
homepage: https://github.com/zdennis/activerecord-import
|
185
186
|
licenses:
|
186
187
|
- MIT
|
187
|
-
metadata:
|
188
|
-
|
188
|
+
metadata:
|
189
|
+
changelog_uri: https://github.com/zdennis/activerecord-import/blob/master/CHANGELOG.md
|
190
|
+
post_install_message:
|
189
191
|
rdoc_options: []
|
190
192
|
require_paths:
|
191
193
|
- lib
|
@@ -200,8 +202,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
200
202
|
- !ruby/object:Gem::Version
|
201
203
|
version: '0'
|
202
204
|
requirements: []
|
203
|
-
rubygems_version: 3.
|
204
|
-
signing_key:
|
205
|
+
rubygems_version: 3.3.9
|
206
|
+
signing_key:
|
205
207
|
specification_version: 4
|
206
208
|
summary: Bulk insert extension for ActiveRecord
|
207
209
|
test_files:
|