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 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