dumped_railers 0.3.0 → 0.3.1

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: fed65c606bfe60816965d6ded3909c05b3c70e1deaa177607a4ad34adf70b4aa
4
- data.tar.gz: fab8b30addebfd9d26efefe35a922cac885797c5371ed1a7c4cfa5d573381b72
3
+ metadata.gz: cbb1709558461827585966be0f48b9741555fc9d70cd22a6c7970cb22260e6a6
4
+ data.tar.gz: f4db2cebc825ff52aeda68f2e06e466dd16663172e4b76289347374e35b046d4
5
5
  SHA512:
6
- metadata.gz: ef030d65359058b04c74e91f6219bffede2dc2737ab1d3189ee6a1028a64f1f925c128df2e6d438742d9dca1277dace81082aec3d4763791c550d43467b1c50a
7
- data.tar.gz: 4584cfc5ee262e40d1a6c432960b17b616c886f92fcdbd0c6a976e0e0379797e2b79d8fd8840f10c5d742661ced0dd13c373fe734bc1842b6e42a49721ba6a57
6
+ metadata.gz: 51ddf56172e72afb4977cb899be013ac6678627905df7e90b6dc147b2afcfd0b2b6c9cd010e8a9a500dd9aa48ccc2a0ff70cf82fc02778fa7ef505f0d8df7f52
7
+ data.tar.gz: 24ee1c963fb89cb99dfcb2064c3d77e0e626525a14452e362aa12aeb9dd9f5f6409feb5c44a8f53ecb91d1eacd92f4793c8ab440714b1177a24d4d573048e7f0
@@ -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
- * DumpedRailers can accept a `before_save` / `after_save` callbacks with import! method.
143
- The callback is invoked just before/after each table's records are saved.
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
- after_callback = -> (model, records) {
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
- DumpedRailers.import!(fixture_path, before_save: before_callback, after_save: after_callback)
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).
@@ -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: nil, after_save: nil)
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.call(model, records) if @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
- @after_save.call(model, records) if @after_save
38
+
39
+ @after_save.each do |callback|
40
+ callback.call(model, records)
41
+ end
36
42
  end
37
43
  end
38
44
  end
@@ -1,3 +1,3 @@
1
1
  module DumpedRailers
2
- VERSION = '0.3.0'
2
+ VERSION = '0.3.1'
3
3
  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.0
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-07 00:00:00.000000000 Z
11
+ date: 2021-01-08 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler