table_sync 5.0.0 → 5.1.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/CHANGELOG.md +13 -0
- data/Gemfile.lock +86 -82
- data/docs/publishing.md +10 -10
- data/docs/receiving.md +11 -6
- data/lib/table_sync/receiving/handler.rb +1 -1
- data/lib/table_sync/version.rb +1 -1
- metadata +3 -3
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 9e2da80dd5ebdacac4e255dd9aacae603e6c76c5f52677db25fab0e1bb0dc15e
|
|
4
|
+
data.tar.gz: 6edc6c7805c4f9eea01b43fb14dc3bb19e3af906a1016b2308350077935c911a
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 3b2981462066a389651bef3be1a8301ce165d9b25298b0b912f3002a27daef1e566dc932dbe2aa5c89c70806457449c5c189949fd10c4d9efabf69ba37ee5627
|
|
7
|
+
data.tar.gz: 47c419f7dbdcfc4e8517604b4df14aaccf40d67eb2071e5991a6ccf211d6698735c22aad2cfba339b2d1b9d7b45405d7071b04045ac94c17fb8f8dd379d4eeaf
|
data/CHANGELOG.md
CHANGED
|
@@ -1,6 +1,19 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
All notable changes to this project will be documented in this file.
|
|
3
3
|
|
|
4
|
+
## [5.1.0] - 2021-09-09
|
|
5
|
+
|
|
6
|
+
### Changed
|
|
7
|
+
- Provide current fired event to wrap receiver. You'll be able to get it with `wrap_receiving(event:, **rest) {}` as usual for `data, target_keys, version_key`
|
|
8
|
+
- Update rails dependencies with patch version
|
|
9
|
+
|
|
10
|
+
## [5.0.1] - 2021-04-06
|
|
11
|
+
### Fixed
|
|
12
|
+
- documentation
|
|
13
|
+
|
|
14
|
+
### Changed
|
|
15
|
+
- update gems
|
|
16
|
+
|
|
4
17
|
## [5.0.0] - 2021-03-04
|
|
5
18
|
### Fixed
|
|
6
19
|
- Fix `delete` events being broken when either `#attrs_for_routing_key` or `#attrs_for_metadata` was defined on a model.
|
data/Gemfile.lock
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
PATH
|
|
2
2
|
remote: .
|
|
3
3
|
specs:
|
|
4
|
-
table_sync (5.
|
|
4
|
+
table_sync (5.1.0)
|
|
5
5
|
memery
|
|
6
6
|
rabbit_messaging
|
|
7
7
|
rails
|
|
@@ -10,60 +10,60 @@ PATH
|
|
|
10
10
|
GEM
|
|
11
11
|
remote: https://rubygems.org/
|
|
12
12
|
specs:
|
|
13
|
-
actioncable (6.1.
|
|
14
|
-
actionpack (= 6.1.
|
|
15
|
-
activesupport (= 6.1.
|
|
13
|
+
actioncable (6.1.4.1)
|
|
14
|
+
actionpack (= 6.1.4.1)
|
|
15
|
+
activesupport (= 6.1.4.1)
|
|
16
16
|
nio4r (~> 2.0)
|
|
17
17
|
websocket-driver (>= 0.6.1)
|
|
18
|
-
actionmailbox (6.1.
|
|
19
|
-
actionpack (= 6.1.
|
|
20
|
-
activejob (= 6.1.
|
|
21
|
-
activerecord (= 6.1.
|
|
22
|
-
activestorage (= 6.1.
|
|
23
|
-
activesupport (= 6.1.
|
|
18
|
+
actionmailbox (6.1.4.1)
|
|
19
|
+
actionpack (= 6.1.4.1)
|
|
20
|
+
activejob (= 6.1.4.1)
|
|
21
|
+
activerecord (= 6.1.4.1)
|
|
22
|
+
activestorage (= 6.1.4.1)
|
|
23
|
+
activesupport (= 6.1.4.1)
|
|
24
24
|
mail (>= 2.7.1)
|
|
25
|
-
actionmailer (6.1.
|
|
26
|
-
actionpack (= 6.1.
|
|
27
|
-
actionview (= 6.1.
|
|
28
|
-
activejob (= 6.1.
|
|
29
|
-
activesupport (= 6.1.
|
|
25
|
+
actionmailer (6.1.4.1)
|
|
26
|
+
actionpack (= 6.1.4.1)
|
|
27
|
+
actionview (= 6.1.4.1)
|
|
28
|
+
activejob (= 6.1.4.1)
|
|
29
|
+
activesupport (= 6.1.4.1)
|
|
30
30
|
mail (~> 2.5, >= 2.5.4)
|
|
31
31
|
rails-dom-testing (~> 2.0)
|
|
32
|
-
actionpack (6.1.
|
|
33
|
-
actionview (= 6.1.
|
|
34
|
-
activesupport (= 6.1.
|
|
32
|
+
actionpack (6.1.4.1)
|
|
33
|
+
actionview (= 6.1.4.1)
|
|
34
|
+
activesupport (= 6.1.4.1)
|
|
35
35
|
rack (~> 2.0, >= 2.0.9)
|
|
36
36
|
rack-test (>= 0.6.3)
|
|
37
37
|
rails-dom-testing (~> 2.0)
|
|
38
38
|
rails-html-sanitizer (~> 1.0, >= 1.2.0)
|
|
39
|
-
actiontext (6.1.
|
|
40
|
-
actionpack (= 6.1.
|
|
41
|
-
activerecord (= 6.1.
|
|
42
|
-
activestorage (= 6.1.
|
|
43
|
-
activesupport (= 6.1.
|
|
39
|
+
actiontext (6.1.4.1)
|
|
40
|
+
actionpack (= 6.1.4.1)
|
|
41
|
+
activerecord (= 6.1.4.1)
|
|
42
|
+
activestorage (= 6.1.4.1)
|
|
43
|
+
activesupport (= 6.1.4.1)
|
|
44
44
|
nokogiri (>= 1.8.5)
|
|
45
|
-
actionview (6.1.
|
|
46
|
-
activesupport (= 6.1.
|
|
45
|
+
actionview (6.1.4.1)
|
|
46
|
+
activesupport (= 6.1.4.1)
|
|
47
47
|
builder (~> 3.1)
|
|
48
48
|
erubi (~> 1.4)
|
|
49
49
|
rails-dom-testing (~> 2.0)
|
|
50
50
|
rails-html-sanitizer (~> 1.1, >= 1.2.0)
|
|
51
|
-
activejob (6.1.
|
|
52
|
-
activesupport (= 6.1.
|
|
51
|
+
activejob (6.1.4.1)
|
|
52
|
+
activesupport (= 6.1.4.1)
|
|
53
53
|
globalid (>= 0.3.6)
|
|
54
|
-
activemodel (6.1.
|
|
55
|
-
activesupport (= 6.1.
|
|
56
|
-
activerecord (6.1.
|
|
57
|
-
activemodel (= 6.1.
|
|
58
|
-
activesupport (= 6.1.
|
|
59
|
-
activestorage (6.1.
|
|
60
|
-
actionpack (= 6.1.
|
|
61
|
-
activejob (= 6.1.
|
|
62
|
-
activerecord (= 6.1.
|
|
63
|
-
activesupport (= 6.1.
|
|
64
|
-
marcel (~> 0.
|
|
65
|
-
|
|
66
|
-
activesupport (6.1.
|
|
54
|
+
activemodel (6.1.4.1)
|
|
55
|
+
activesupport (= 6.1.4.1)
|
|
56
|
+
activerecord (6.1.4.1)
|
|
57
|
+
activemodel (= 6.1.4.1)
|
|
58
|
+
activesupport (= 6.1.4.1)
|
|
59
|
+
activestorage (6.1.4.1)
|
|
60
|
+
actionpack (= 6.1.4.1)
|
|
61
|
+
activejob (= 6.1.4.1)
|
|
62
|
+
activerecord (= 6.1.4.1)
|
|
63
|
+
activesupport (= 6.1.4.1)
|
|
64
|
+
marcel (~> 1.0.0)
|
|
65
|
+
mini_mime (>= 1.1.0)
|
|
66
|
+
activesupport (6.1.4.1)
|
|
67
67
|
concurrent-ruby (~> 1.0, >= 1.0.2)
|
|
68
68
|
i18n (>= 1.6, < 2)
|
|
69
69
|
minitest (>= 5.1)
|
|
@@ -72,13 +72,14 @@ GEM
|
|
|
72
72
|
amq-protocol (2.3.2)
|
|
73
73
|
ast (2.4.2)
|
|
74
74
|
builder (3.2.4)
|
|
75
|
-
bundler-audit (0.
|
|
75
|
+
bundler-audit (0.8.0)
|
|
76
76
|
bundler (>= 1.2.0, < 3)
|
|
77
|
-
thor (
|
|
78
|
-
bunny (2.
|
|
77
|
+
thor (~> 1.0)
|
|
78
|
+
bunny (2.19.0)
|
|
79
79
|
amq-protocol (~> 2.3, >= 2.3.1)
|
|
80
|
+
sorted_set (~> 1, >= 1.0.2)
|
|
80
81
|
coderay (1.1.3)
|
|
81
|
-
concurrent-ruby (1.1.
|
|
82
|
+
concurrent-ruby (1.1.9)
|
|
82
83
|
crass (1.0.6)
|
|
83
84
|
diff-lcs (1.4.4)
|
|
84
85
|
docile (1.3.5)
|
|
@@ -86,29 +87,27 @@ GEM
|
|
|
86
87
|
exception_notification (4.4.3)
|
|
87
88
|
actionmailer (>= 4.0, < 7)
|
|
88
89
|
activesupport (>= 4.0, < 7)
|
|
89
|
-
globalid (0.
|
|
90
|
-
activesupport (>=
|
|
91
|
-
i18n (1.8.
|
|
90
|
+
globalid (0.5.2)
|
|
91
|
+
activesupport (>= 5.0)
|
|
92
|
+
i18n (1.8.10)
|
|
92
93
|
concurrent-ruby (~> 1.0)
|
|
93
94
|
lamian (1.2.0)
|
|
94
95
|
rails (>= 4.2)
|
|
95
|
-
loofah (2.
|
|
96
|
+
loofah (2.12.0)
|
|
96
97
|
crass (~> 1.0.2)
|
|
97
98
|
nokogiri (>= 1.5.9)
|
|
98
99
|
mail (2.7.1)
|
|
99
100
|
mini_mime (>= 0.1.1)
|
|
100
|
-
marcel (0.
|
|
101
|
-
|
|
102
|
-
memery (1.3.0)
|
|
101
|
+
marcel (1.0.1)
|
|
102
|
+
memery (1.4.1)
|
|
103
103
|
ruby2_keywords (~> 0.0.2)
|
|
104
104
|
method_source (1.0.0)
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
mini_portile2 (2.5.0)
|
|
105
|
+
mini_mime (1.1.1)
|
|
106
|
+
mini_portile2 (2.6.1)
|
|
108
107
|
minitest (5.14.4)
|
|
109
|
-
nio4r (2.5.
|
|
110
|
-
nokogiri (1.
|
|
111
|
-
mini_portile2 (~> 2.
|
|
108
|
+
nio4r (2.5.8)
|
|
109
|
+
nokogiri (1.12.4)
|
|
110
|
+
mini_portile2 (~> 2.6.1)
|
|
112
111
|
racc (~> 1.4)
|
|
113
112
|
parallel (1.20.1)
|
|
114
113
|
parser (3.0.0.0)
|
|
@@ -117,7 +116,7 @@ GEM
|
|
|
117
116
|
pry (0.14.0)
|
|
118
117
|
coderay (~> 1.1)
|
|
119
118
|
method_source (~> 1.0)
|
|
120
|
-
rabbit_messaging (0.
|
|
119
|
+
rabbit_messaging (0.12.0)
|
|
121
120
|
bunny (~> 2.0)
|
|
122
121
|
exception_notification
|
|
123
122
|
lamian
|
|
@@ -128,36 +127,37 @@ GEM
|
|
|
128
127
|
rack (2.2.3)
|
|
129
128
|
rack-test (1.1.0)
|
|
130
129
|
rack (>= 1.0, < 3)
|
|
131
|
-
rails (6.1.
|
|
132
|
-
actioncable (= 6.1.
|
|
133
|
-
actionmailbox (= 6.1.
|
|
134
|
-
actionmailer (= 6.1.
|
|
135
|
-
actionpack (= 6.1.
|
|
136
|
-
actiontext (= 6.1.
|
|
137
|
-
actionview (= 6.1.
|
|
138
|
-
activejob (= 6.1.
|
|
139
|
-
activemodel (= 6.1.
|
|
140
|
-
activerecord (= 6.1.
|
|
141
|
-
activestorage (= 6.1.
|
|
142
|
-
activesupport (= 6.1.
|
|
130
|
+
rails (6.1.4.1)
|
|
131
|
+
actioncable (= 6.1.4.1)
|
|
132
|
+
actionmailbox (= 6.1.4.1)
|
|
133
|
+
actionmailer (= 6.1.4.1)
|
|
134
|
+
actionpack (= 6.1.4.1)
|
|
135
|
+
actiontext (= 6.1.4.1)
|
|
136
|
+
actionview (= 6.1.4.1)
|
|
137
|
+
activejob (= 6.1.4.1)
|
|
138
|
+
activemodel (= 6.1.4.1)
|
|
139
|
+
activerecord (= 6.1.4.1)
|
|
140
|
+
activestorage (= 6.1.4.1)
|
|
141
|
+
activesupport (= 6.1.4.1)
|
|
143
142
|
bundler (>= 1.15.0)
|
|
144
|
-
railties (= 6.1.
|
|
143
|
+
railties (= 6.1.4.1)
|
|
145
144
|
sprockets-rails (>= 2.0.0)
|
|
146
145
|
rails-dom-testing (2.0.3)
|
|
147
146
|
activesupport (>= 4.2.0)
|
|
148
147
|
nokogiri (>= 1.6)
|
|
149
|
-
rails-html-sanitizer (1.
|
|
148
|
+
rails-html-sanitizer (1.4.2)
|
|
150
149
|
loofah (~> 2.3)
|
|
151
|
-
railties (6.1.
|
|
152
|
-
actionpack (= 6.1.
|
|
153
|
-
activesupport (= 6.1.
|
|
150
|
+
railties (6.1.4.1)
|
|
151
|
+
actionpack (= 6.1.4.1)
|
|
152
|
+
activesupport (= 6.1.4.1)
|
|
154
153
|
method_source
|
|
155
|
-
rake (>= 0.
|
|
154
|
+
rake (>= 0.13)
|
|
156
155
|
thor (~> 1.0)
|
|
157
156
|
rainbow (3.0.0)
|
|
158
|
-
rake (13.0.
|
|
157
|
+
rake (13.0.6)
|
|
158
|
+
rbtree (0.4.4)
|
|
159
159
|
regexp_parser (2.1.1)
|
|
160
|
-
rexml (3.2.
|
|
160
|
+
rexml (3.2.5)
|
|
161
161
|
rspec (3.10.0)
|
|
162
162
|
rspec-core (~> 3.10.0)
|
|
163
163
|
rspec-expectations (~> 3.10.0)
|
|
@@ -204,11 +204,12 @@ GEM
|
|
|
204
204
|
rubocop-sequel (0.2.0)
|
|
205
205
|
rubocop (~> 1.0)
|
|
206
206
|
ruby-progressbar (1.11.0)
|
|
207
|
-
ruby2_keywords (0.0.
|
|
207
|
+
ruby2_keywords (0.0.5)
|
|
208
208
|
self_data (1.2.1)
|
|
209
|
-
sequel (5.
|
|
209
|
+
sequel (5.43.0)
|
|
210
210
|
serverengine (2.0.7)
|
|
211
211
|
sigdump (~> 0.2.2)
|
|
212
|
+
set (1.0.1)
|
|
212
213
|
sigdump (0.2.4)
|
|
213
214
|
simplecov (0.21.2)
|
|
214
215
|
docile (~> 1.1)
|
|
@@ -223,6 +224,9 @@ GEM
|
|
|
223
224
|
rake
|
|
224
225
|
serverengine (~> 2.0.5)
|
|
225
226
|
thor
|
|
227
|
+
sorted_set (1.0.3)
|
|
228
|
+
rbtree
|
|
229
|
+
set (~> 1.0)
|
|
226
230
|
sprockets (4.0.2)
|
|
227
231
|
concurrent-ruby (~> 1.0)
|
|
228
232
|
rack (> 1, < 3)
|
|
@@ -237,7 +241,7 @@ GEM
|
|
|
237
241
|
tzinfo (2.0.4)
|
|
238
242
|
concurrent-ruby (~> 1.0)
|
|
239
243
|
unicode-display_width (2.0.0)
|
|
240
|
-
websocket-driver (0.7.
|
|
244
|
+
websocket-driver (0.7.5)
|
|
241
245
|
websocket-extensions (>= 0.1.0)
|
|
242
246
|
websocket-extensions (0.1.5)
|
|
243
247
|
zeitwerk (2.4.2)
|
|
@@ -262,4 +266,4 @@ DEPENDENCIES
|
|
|
262
266
|
timecop
|
|
263
267
|
|
|
264
268
|
BUNDLED WITH
|
|
265
|
-
2.2.
|
|
269
|
+
2.2.27
|
data/docs/publishing.md
CHANGED
|
@@ -41,7 +41,7 @@ Example:
|
|
|
41
41
|
```ruby
|
|
42
42
|
class TableSync::Job < ActiveJob::Base
|
|
43
43
|
def perform(*args)
|
|
44
|
-
TableSync::Publisher.new(*args).publish_now
|
|
44
|
+
TableSync::Publishing::Publisher.new(*args).publish_now
|
|
45
45
|
end
|
|
46
46
|
end
|
|
47
47
|
```
|
|
@@ -70,16 +70,16 @@ TableSync.routing_metadata_callable = -> (klass, attributes) { attributes.slice(
|
|
|
70
70
|
|
|
71
71
|
# Manual publishing
|
|
72
72
|
|
|
73
|
-
`TableSync::Publisher.new(object_class, original_attributes, confirm: true, state: :updated, debounce_time: 45)`
|
|
73
|
+
`TableSync::Publishing::Publisher.new(object_class, original_attributes, confirm: true, state: :updated, debounce_time: 45)`
|
|
74
74
|
where state is one of `:created / :updated / :destroyed` and `confirm` is Rabbit's confirm delivery flag and optional param `debounce_time` determines debounce time in seconds, 1 minute by default.
|
|
75
75
|
|
|
76
76
|
# Manual publishing with batches
|
|
77
77
|
|
|
78
|
-
You can use `TableSync::BatchPublisher` to publish changes in batches (array of hashes in `attributes`).
|
|
78
|
+
You can use `TableSync::Publishing::BatchPublisher` to publish changes in batches (array of hashes in `attributes`).
|
|
79
79
|
|
|
80
|
-
When using `TableSync::BatchPublisher`,` TableSync.routing_key_callable` is called as follows: `TableSync.routing_key_callable.call(klass, {})`, i.e. empty hash is passed instead of attributes. And `TableSync.routing_metadata_callable` is not called at all: metadata is set to empty hash.
|
|
80
|
+
When using `TableSync::Publishing::BatchPublisher`,` TableSync.routing_key_callable` is called as follows: `TableSync.routing_key_callable.call(klass, {})`, i.e. empty hash is passed instead of attributes. And `TableSync.routing_metadata_callable` is not called at all: metadata is set to empty hash.
|
|
81
81
|
|
|
82
|
-
`TableSync::BatchPublisher.new(object_class, original_attributes_array, **options)`, where `original_attributes_array` is an array with hash of attributes of published objects and `options` is a hash of options.
|
|
82
|
+
`TableSync::Publishing::BatchPublisher.new(object_class, original_attributes_array, **options)`, where `original_attributes_array` is an array with hash of attributes of published objects and `options` is a hash of options.
|
|
83
83
|
|
|
84
84
|
`options` consists of:
|
|
85
85
|
- `confirm`, which is a flag for RabbitMQ, `true` by default
|
|
@@ -92,7 +92,7 @@ original_attributes_array will be pushed to Rabbit instead of fetching records f
|
|
|
92
92
|
Example:
|
|
93
93
|
|
|
94
94
|
```ruby
|
|
95
|
-
TableSync::BatchPublisher.new(
|
|
95
|
+
TableSync::Publishing::BatchPublisher.new(
|
|
96
96
|
"SomeClass",
|
|
97
97
|
[{ id: 1 }, { id: 2 }],
|
|
98
98
|
confirm: false,
|
|
@@ -105,11 +105,11 @@ TableSync::BatchPublisher.new(
|
|
|
105
105
|
|
|
106
106
|
# Manual publishing with batches (Russian)
|
|
107
107
|
|
|
108
|
-
С помощью класса `TableSync::BatchPublisher` вы можете опубликовать изменения батчами (массивом в `attributes`).
|
|
108
|
+
С помощью класса `TableSync::Publishing::BatchPublisher` вы можете опубликовать изменения батчами (массивом в `attributes`).
|
|
109
109
|
|
|
110
|
-
При использовании `TableSync::BatchPublisher`, `TableSync.routing_key_callable` вызывается следующим образом: `TableSync.routing_key_callable.call(klass, {})`, то есть вместо аттрибутов передается пустой хэш. А `TableSync.routing_metadata_callable` не вызывается вовсе: в метадате устанавливается пустой хэш.
|
|
110
|
+
При использовании `TableSync::Publishing::BatchPublisher`, `TableSync.routing_key_callable` вызывается следующим образом: `TableSync.routing_key_callable.call(klass, {})`, то есть вместо аттрибутов передается пустой хэш. А `TableSync.routing_metadata_callable` не вызывается вовсе: в метадате устанавливается пустой хэш.
|
|
111
111
|
|
|
112
|
-
`TableSync::BatchPublisher.new(object_class, original_attributes_array, **options)`, где `original_attributes_array` - массив с аттрибутами публикуемых объектов и `options`- это хэш с дополнительными опциями.
|
|
112
|
+
`TableSync::Publishing::BatchPublisher.new(object_class, original_attributes_array, **options)`, где `original_attributes_array` - массив с аттрибутами публикуемых объектов и `options`- это хэш с дополнительными опциями.
|
|
113
113
|
|
|
114
114
|
`options` состоит из:
|
|
115
115
|
- `confirm`, флаг для RabbitMQ, по умолчанию - `true`
|
|
@@ -121,7 +121,7 @@ TableSync::BatchPublisher.new(
|
|
|
121
121
|
Example:
|
|
122
122
|
|
|
123
123
|
```ruby
|
|
124
|
-
TableSync::BatchPublisher.new(
|
|
124
|
+
TableSync::Publishing::BatchPublisher.new(
|
|
125
125
|
"SomeClass",
|
|
126
126
|
[{ id: 1 }, { id: 2 }],
|
|
127
127
|
confirm: false,
|
data/docs/receiving.md
CHANGED
|
@@ -68,7 +68,7 @@ The method receives following arguments
|
|
|
68
68
|
- `events` - array of supported events (optional)
|
|
69
69
|
- `block` - configuration block with options (optional)
|
|
70
70
|
|
|
71
|
-
This method implements logic of mapping `source` to `to_table` (or to `to_model`) and allows customizing
|
|
71
|
+
This method implements logic of mapping `source` to `to_table` (or to `to_model`) and allows customizing
|
|
72
72
|
the event handling logic with provided block.
|
|
73
73
|
You can use one `source` for a lot of `to_table` or `to_moel`.
|
|
74
74
|
|
|
@@ -235,12 +235,13 @@ default value is `false`
|
|
|
235
235
|
Proc that is used to wrap the receiving logic by custom block of code.
|
|
236
236
|
|
|
237
237
|
```ruby
|
|
238
|
-
wrap_receiving do |data:, target_keys:, version_key:, default_values: {}, &receiving_logic|
|
|
238
|
+
wrap_receiving do |data:, target_keys:, version_key:, default_values: {}, event:, &receiving_logic|
|
|
239
239
|
receiving_logic.call
|
|
240
240
|
return makes no sense
|
|
241
241
|
end
|
|
242
242
|
```
|
|
243
243
|
|
|
244
|
+
event option is current fired event
|
|
244
245
|
default value is `proc { |&block| block.call }`
|
|
245
246
|
|
|
246
247
|
#### before_update
|
|
@@ -262,15 +263,17 @@ end
|
|
|
262
263
|
Perform code after updated data was committed.
|
|
263
264
|
|
|
264
265
|
```ruby
|
|
265
|
-
after_commit_on_update do |data:, target_keys:, version_key:, default_values:|
|
|
266
|
+
after_commit_on_update do |data:, target_keys:, version_key:, default_values:, results:|
|
|
266
267
|
return makes no sense
|
|
267
268
|
end
|
|
268
269
|
|
|
269
|
-
after_commit_on_update do |data:, target_keys:, version_key:, default_values:|
|
|
270
|
+
after_commit_on_update do |data:, target_keys:, version_key:, default_values:, results:|
|
|
270
271
|
return makes no sense
|
|
271
272
|
end
|
|
272
273
|
```
|
|
273
274
|
|
|
275
|
+
- `results` - returned value from `model.upsert`
|
|
276
|
+
|
|
274
277
|
Сan be defined several times. Execution order guaranteed.
|
|
275
278
|
|
|
276
279
|
#### before_destroy
|
|
@@ -292,15 +295,17 @@ end
|
|
|
292
295
|
Perform code after destroyed data was committed.
|
|
293
296
|
|
|
294
297
|
```ruby
|
|
295
|
-
after_commit_on_destroy do |data:, target_keys:, version_key:|
|
|
298
|
+
after_commit_on_destroy do |data:, target_keys:, version_key:, results:|
|
|
296
299
|
return makes no sense
|
|
297
300
|
end
|
|
298
301
|
|
|
299
|
-
after_commit_on_destroy do |data:, target_keys:, version_key:|
|
|
302
|
+
after_commit_on_destroy do |data:, target_keys:, version_key:, results:|
|
|
300
303
|
return makes no sense
|
|
301
304
|
end
|
|
302
305
|
```
|
|
303
306
|
|
|
307
|
+
- `results` - returned value from `model.destroy`
|
|
308
|
+
|
|
304
309
|
Сan be defined several times. Execution order guaranteed.
|
|
305
310
|
|
|
306
311
|
### Custom model
|
|
@@ -31,7 +31,7 @@ class TableSync::Receiving::Handler < Rabbit::EventHandler
|
|
|
31
31
|
params[:default_values] = config.default_values(data: data)
|
|
32
32
|
end
|
|
33
33
|
|
|
34
|
-
config.wrap_receiving(**params) do
|
|
34
|
+
config.wrap_receiving(event: event, **params) do
|
|
35
35
|
perform(config, params)
|
|
36
36
|
end
|
|
37
37
|
end
|
data/lib/table_sync/version.rb
CHANGED
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: table_sync
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 5.
|
|
4
|
+
version: 5.1.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Umbrellio
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2021-
|
|
11
|
+
date: 2021-09-09 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: memery
|
|
@@ -317,7 +317,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
317
317
|
- !ruby/object:Gem::Version
|
|
318
318
|
version: '0'
|
|
319
319
|
requirements: []
|
|
320
|
-
rubygems_version: 3.2.
|
|
320
|
+
rubygems_version: 3.2.3
|
|
321
321
|
signing_key:
|
|
322
322
|
specification_version: 4
|
|
323
323
|
summary: DB Table synchronization between microservices based on Model's event system
|