dumped_railers 0.3.0 → 0.3.1
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/CHANGELOG.md +4 -0
- data/README.md +14 -4
- data/lib/dumped_railers.rb +3 -0
- data/lib/dumped_railers/import.rb +9 -3
- data/lib/dumped_railers/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: cbb1709558461827585966be0f48b9741555fc9d70cd22a6c7970cb22260e6a6
|
4
|
+
data.tar.gz: f4db2cebc825ff52aeda68f2e06e466dd16663172e4b76289347374e35b046d4
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 51ddf56172e72afb4977cb899be013ac6678627905df7e90b6dc147b2afcfd0b2b6c9cd010e8a9a500dd9aa48ccc2a0ff70cf82fc02778fa7ef505f0d8df7f52
|
7
|
+
data.tar.gz: 24ee1c963fb89cb99dfcb2064c3d77e0e626525a14452e362aa12aeb9dd9f5f6409feb5c44a8f53ecb91d1eacd92f4793c8ab440714b1177a24d4d573048e7f0
|
data/CHANGELOG.md
CHANGED
@@ -43,3 +43,7 @@
|
|
43
43
|
## [0.3.0]
|
44
44
|
### Added
|
45
45
|
- Support `before_save`/`after_save` callbacks with import! method. The callbacks are invoked just before (or after) each table's records are saved.
|
46
|
+
|
47
|
+
## [0.3.0]
|
48
|
+
### Added
|
49
|
+
- Accept multiple (array) callbacks for `before_save` / `after_save` arguments with DumpedRailers.import!.
|
data/README.md
CHANGED
@@ -139,8 +139,8 @@ NOTE: Only DumpedRailers.import! is affected by this option. DumpedRailers.dump!
|
|
139
139
|
|
140
140
|
### Setting Callbacks
|
141
141
|
|
142
|
-
*
|
143
|
-
The
|
142
|
+
* You can set `before_save` / `after_save` callbacks for import! method.
|
143
|
+
The callbacks are invoked just before/after each table's records are saved.
|
144
144
|
|
145
145
|
```ruby
|
146
146
|
before_callback = -> (model, records) {
|
@@ -152,7 +152,7 @@ before_callback = -> (model, records) {
|
|
152
152
|
end
|
153
153
|
}
|
154
154
|
|
155
|
-
|
155
|
+
after_callback1 = -> (model, records) {
|
156
156
|
if model == User
|
157
157
|
records.each do |user|
|
158
158
|
user.confirm!
|
@@ -160,9 +160,19 @@ after_callback = -> (model, records) {
|
|
160
160
|
end
|
161
161
|
}
|
162
162
|
|
163
|
-
|
163
|
+
after_callback2 = -> (model, records) {
|
164
|
+
if model == Admin
|
165
|
+
records.each |admin|
|
166
|
+
notify_to_slack(admin.email, admin.name)
|
167
|
+
end
|
168
|
+
end
|
169
|
+
}
|
170
|
+
|
171
|
+
DumpedRailers.import!(fixture_path, before_save: before_callback, after_save: [after_callback1, after_callback2])
|
164
172
|
```
|
165
173
|
|
174
|
+
`before_save` / `after_save` can accept both single and multiple (array) arguments.
|
175
|
+
|
166
176
|
### Configuration
|
167
177
|
|
168
178
|
* All the settings can be configured by either configuration (global) or arguments (at runtime).
|
data/lib/dumped_railers.rb
CHANGED
@@ -32,6 +32,9 @@ module DumpedRailers
|
|
32
32
|
# override global config settings when options are specified
|
33
33
|
runtime_options = { authorized_models: authorized_models.presence }.compact.reverse_merge(import_options)
|
34
34
|
|
35
|
+
before_save = Array(before_save).compact
|
36
|
+
after_save = Array(after_save).compact
|
37
|
+
|
35
38
|
fixture_handler = Import.new(
|
36
39
|
*paths,
|
37
40
|
authorized_models: runtime_options[:authorized_models],
|
@@ -6,7 +6,7 @@ module DumpedRailers
|
|
6
6
|
class Import
|
7
7
|
attr_reader :fixture_set
|
8
8
|
|
9
|
-
def initialize(*paths, authorized_models: [], before_save:
|
9
|
+
def initialize(*paths, authorized_models: [], before_save: [], after_save: [])
|
10
10
|
@before_save = before_save
|
11
11
|
@after_save = after_save
|
12
12
|
|
@@ -28,11 +28,17 @@ module DumpedRailers
|
|
28
28
|
# models have to be persisted one-by-one so that dependent models are able to
|
29
29
|
# resolve "belongs_to" (parent) association
|
30
30
|
@record_sets.each do |model, records|
|
31
|
-
@before_save.
|
31
|
+
@before_save.each do |callback|
|
32
|
+
callback.call(model, records)
|
33
|
+
end
|
34
|
+
|
32
35
|
# FIXME: faster implementation wanted, parhaps with activerocord-import
|
33
36
|
# (objects needs to be reloaded somehow when using buik insert)
|
34
37
|
records.each(&:save!)
|
35
|
-
|
38
|
+
|
39
|
+
@after_save.each do |callback|
|
40
|
+
callback.call(model, records)
|
41
|
+
end
|
36
42
|
end
|
37
43
|
end
|
38
44
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: dumped_railers
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.3.
|
4
|
+
version: 0.3.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Koji Onishi
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2021-01-
|
11
|
+
date: 2021-01-08 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|