table_sync 6.0.4 → 6.1.0

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: c48d862b8330d868a174505278c8a49003bf7538c27385f5dab5698758066081
4
- data.tar.gz: 20069f9959c72c74e1df331c41cc641ba5ea864413580624a99ccacd0334915d
3
+ metadata.gz: 10bb9ae0cf3986bb7feba1c61403b8d459a7bc8efc3dc3bcbf3db47306efee5e
4
+ data.tar.gz: 1d3d5b855d79efb73e2816ac617b8b73c1a85cc2a3e0cb9b2f975f07c86e0de3
5
5
  SHA512:
6
- metadata.gz: 0fd5d6406e00b91cf5f89fa16fa4d507b47fa7abdb801d1697a1607b3f97891947164dcfa73c516514b8fb42b3832717b4410753697f6857b59588a927d07d45
7
- data.tar.gz: 4e42062c80868f36a8b49b2e2d1c3c3ee6cb630aafaced024382f7d079a3bcd8afc17c6668bcf8dc9cd188f86e54d168b125c88d29906cfbc52c2982d011a63c
6
+ metadata.gz: f569ca939a161a9e1a17f998066cbdf86483b28f4742efd1fd614a33689cbe7e6aa5cadba85e973b271337cc3207e9535e1ddcb42949f53948d444121d107d32
7
+ data.tar.gz: 78ab27afcdb65a1dd0baaafe8f83f5812822bb5cdf002b3b9b31c3619c6ccc74d331e130f2170aa1d9063e36c88c05e24c8f8dc8dbeb2d08241a90cdd4a85603
@@ -30,7 +30,7 @@ jobs:
30
30
  strategy:
31
31
  fail-fast: false
32
32
  matrix:
33
- ruby: ["2.5", "2.6", "2.7", "3.0"]
33
+ ruby: ["2.7", "3.0", "3.1"]
34
34
 
35
35
  name: ${{ matrix.ruby }}
36
36
 
@@ -47,6 +47,6 @@ jobs:
47
47
  - run: bundle exec rubocop
48
48
  - run: bundle exec rspec
49
49
 
50
- - uses: coverallsapp/github-action@v1.1.2
50
+ - uses: coverallsapp/github-action@master
51
51
  with:
52
52
  github-token: ${{ secrets.GITHUB_TOKEN }}
data/.rubocop.yml CHANGED
@@ -2,7 +2,7 @@ inherit_gem:
2
2
  rubocop-config-umbrellio: lib/rubocop.yml
3
3
 
4
4
  AllCops:
5
- TargetRubyVersion: 2.5
5
+ TargetRubyVersion: 2.7
6
6
  Include:
7
7
  - bin/*
8
8
  - lib/**/*.rb
@@ -35,3 +35,14 @@ Lint/MissingSuper:
35
35
 
36
36
  Style/MissingRespondToMissing:
37
37
  Enabled: false
38
+
39
+ Style/HashConversion:
40
+ Exclude:
41
+ - spec/**/*
42
+
43
+ Style/OpenStructUse:
44
+ Exclude:
45
+ - spec/**/*
46
+
47
+ RSpec/PendingWithoutReason:
48
+ Enabled: false # Many false positives
data/CHANGELOG.md CHANGED
@@ -1,6 +1,15 @@
1
1
  # Changelog
2
2
  All notable changes to this project will be documented in this file.
3
3
 
4
+ ## [6.1.0] - 2022-11-24
5
+ ### Changed
6
+
7
+ - Instead of using `object_class` for `TableSync::Publishing::Raw`, use `model_name`,
8
+ which accepts `String` instead of `Class`.
9
+ - Can manually disable notifications by setting `TableSync.notify = false`.
10
+ - `TableSync::Publishing::Raw` accepts two additional optional arguments: `table_name` and `schema`,
11
+ this attributes only used to fill information for the notification.
12
+
4
13
  ## [6.0.4] - 2022-02-05
5
14
  ### Fixed
6
15
 
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- table_sync (6.0.4)
4
+ table_sync (6.1.0)
5
5
  memery
6
6
  rabbit_messaging
7
7
  rails
@@ -10,107 +10,127 @@ PATH
10
10
  GEM
11
11
  remote: https://rubygems.org/
12
12
  specs:
13
- actioncable (6.1.4.4)
14
- actionpack (= 6.1.4.4)
15
- activesupport (= 6.1.4.4)
13
+ actioncable (7.0.4.2)
14
+ actionpack (= 7.0.4.2)
15
+ activesupport (= 7.0.4.2)
16
16
  nio4r (~> 2.0)
17
17
  websocket-driver (>= 0.6.1)
18
- actionmailbox (6.1.4.4)
19
- actionpack (= 6.1.4.4)
20
- activejob (= 6.1.4.4)
21
- activerecord (= 6.1.4.4)
22
- activestorage (= 6.1.4.4)
23
- activesupport (= 6.1.4.4)
18
+ actionmailbox (7.0.4.2)
19
+ actionpack (= 7.0.4.2)
20
+ activejob (= 7.0.4.2)
21
+ activerecord (= 7.0.4.2)
22
+ activestorage (= 7.0.4.2)
23
+ activesupport (= 7.0.4.2)
24
24
  mail (>= 2.7.1)
25
- actionmailer (6.1.4.4)
26
- actionpack (= 6.1.4.4)
27
- actionview (= 6.1.4.4)
28
- activejob (= 6.1.4.4)
29
- activesupport (= 6.1.4.4)
25
+ net-imap
26
+ net-pop
27
+ net-smtp
28
+ actionmailer (7.0.4.2)
29
+ actionpack (= 7.0.4.2)
30
+ actionview (= 7.0.4.2)
31
+ activejob (= 7.0.4.2)
32
+ activesupport (= 7.0.4.2)
30
33
  mail (~> 2.5, >= 2.5.4)
34
+ net-imap
35
+ net-pop
36
+ net-smtp
31
37
  rails-dom-testing (~> 2.0)
32
- actionpack (6.1.4.4)
33
- actionview (= 6.1.4.4)
34
- activesupport (= 6.1.4.4)
35
- rack (~> 2.0, >= 2.0.9)
38
+ actionpack (7.0.4.2)
39
+ actionview (= 7.0.4.2)
40
+ activesupport (= 7.0.4.2)
41
+ rack (~> 2.0, >= 2.2.0)
36
42
  rack-test (>= 0.6.3)
37
43
  rails-dom-testing (~> 2.0)
38
44
  rails-html-sanitizer (~> 1.0, >= 1.2.0)
39
- actiontext (6.1.4.4)
40
- actionpack (= 6.1.4.4)
41
- activerecord (= 6.1.4.4)
42
- activestorage (= 6.1.4.4)
43
- activesupport (= 6.1.4.4)
45
+ actiontext (7.0.4.2)
46
+ actionpack (= 7.0.4.2)
47
+ activerecord (= 7.0.4.2)
48
+ activestorage (= 7.0.4.2)
49
+ activesupport (= 7.0.4.2)
50
+ globalid (>= 0.6.0)
44
51
  nokogiri (>= 1.8.5)
45
- actionview (6.1.4.4)
46
- activesupport (= 6.1.4.4)
52
+ actionview (7.0.4.2)
53
+ activesupport (= 7.0.4.2)
47
54
  builder (~> 3.1)
48
55
  erubi (~> 1.4)
49
56
  rails-dom-testing (~> 2.0)
50
57
  rails-html-sanitizer (~> 1.1, >= 1.2.0)
51
- activejob (6.1.4.4)
52
- activesupport (= 6.1.4.4)
58
+ activejob (7.0.4.2)
59
+ activesupport (= 7.0.4.2)
53
60
  globalid (>= 0.3.6)
54
- activemodel (6.1.4.4)
55
- activesupport (= 6.1.4.4)
56
- activerecord (6.1.4.4)
57
- activemodel (= 6.1.4.4)
58
- activesupport (= 6.1.4.4)
59
- activestorage (6.1.4.4)
60
- actionpack (= 6.1.4.4)
61
- activejob (= 6.1.4.4)
62
- activerecord (= 6.1.4.4)
63
- activesupport (= 6.1.4.4)
64
- marcel (~> 1.0.0)
61
+ activemodel (7.0.4.2)
62
+ activesupport (= 7.0.4.2)
63
+ activerecord (7.0.4.2)
64
+ activemodel (= 7.0.4.2)
65
+ activesupport (= 7.0.4.2)
66
+ activestorage (7.0.4.2)
67
+ actionpack (= 7.0.4.2)
68
+ activejob (= 7.0.4.2)
69
+ activerecord (= 7.0.4.2)
70
+ activesupport (= 7.0.4.2)
71
+ marcel (~> 1.0)
65
72
  mini_mime (>= 1.1.0)
66
- activesupport (6.1.4.4)
73
+ activesupport (7.0.4.2)
67
74
  concurrent-ruby (~> 1.0, >= 1.0.2)
68
75
  i18n (>= 1.6, < 2)
69
76
  minitest (>= 5.1)
70
77
  tzinfo (~> 2.0)
71
- zeitwerk (~> 2.3)
72
78
  amq-protocol (2.3.2)
73
79
  ast (2.4.2)
74
80
  builder (3.2.4)
75
- bundler-audit (0.8.0)
81
+ bundler-audit (0.9.1)
76
82
  bundler (>= 1.2.0, < 3)
77
83
  thor (~> 1.0)
78
- bunny (2.19.0)
84
+ bunny (2.20.3)
79
85
  amq-protocol (~> 2.3, >= 2.3.1)
80
86
  sorted_set (~> 1, >= 1.0.2)
81
87
  coderay (1.1.3)
82
- concurrent-ruby (1.1.9)
88
+ concurrent-ruby (1.2.0)
83
89
  crass (1.0.6)
84
- diff-lcs (1.4.4)
85
- docile (1.3.5)
86
- erubi (1.10.0)
87
- globalid (1.0.0)
90
+ date (3.3.3)
91
+ diff-lcs (1.5.0)
92
+ docile (1.4.0)
93
+ erubi (1.12.0)
94
+ globalid (1.1.0)
88
95
  activesupport (>= 5.0)
89
- i18n (1.9.1)
96
+ i18n (1.12.0)
90
97
  concurrent-ruby (~> 1.0)
91
- lamian (1.5.0)
98
+ json (2.6.3)
99
+ lamian (1.7.0)
92
100
  rails (>= 4.2)
93
- loofah (2.13.0)
101
+ loofah (2.19.1)
94
102
  crass (~> 1.0.2)
95
103
  nokogiri (>= 1.5.9)
96
- mail (2.7.1)
104
+ mail (2.8.1)
97
105
  mini_mime (>= 0.1.1)
106
+ net-imap
107
+ net-pop
108
+ net-smtp
98
109
  marcel (1.0.2)
99
110
  memery (1.4.1)
100
111
  ruby2_keywords (~> 0.0.2)
101
112
  method_source (1.0.0)
102
113
  mini_mime (1.1.2)
103
- mini_portile2 (2.6.1)
104
- minitest (5.15.0)
114
+ mini_portile2 (2.8.1)
115
+ minitest (5.17.0)
116
+ net-imap (0.3.4)
117
+ date
118
+ net-protocol
119
+ net-pop (0.1.2)
120
+ net-protocol
121
+ net-protocol (0.2.1)
122
+ timeout
123
+ net-smtp (0.3.3)
124
+ net-protocol
105
125
  nio4r (2.5.8)
106
- nokogiri (1.12.5)
107
- mini_portile2 (~> 2.6.1)
126
+ nokogiri (1.14.2)
127
+ mini_portile2 (~> 2.8.0)
108
128
  racc (~> 1.4)
109
- parallel (1.20.1)
110
- parser (3.0.0.0)
129
+ parallel (1.22.1)
130
+ parser (3.2.1.0)
111
131
  ast (~> 2.4.1)
112
- pg (1.2.3)
113
- pry (0.14.0)
132
+ pg (1.4.5)
133
+ pry (0.14.2)
114
134
  coderay (~> 1.1)
115
135
  method_source (~> 1.0)
116
136
  rabbit_messaging (0.12.1)
@@ -119,101 +139,101 @@ GEM
119
139
  rails (>= 5.2)
120
140
  sneakers (~> 2.0)
121
141
  tainbox
122
- racc (1.6.0)
123
- rack (2.2.3)
124
- rack-test (1.1.0)
125
- rack (>= 1.0, < 3)
126
- rails (6.1.4.4)
127
- actioncable (= 6.1.4.4)
128
- actionmailbox (= 6.1.4.4)
129
- actionmailer (= 6.1.4.4)
130
- actionpack (= 6.1.4.4)
131
- actiontext (= 6.1.4.4)
132
- actionview (= 6.1.4.4)
133
- activejob (= 6.1.4.4)
134
- activemodel (= 6.1.4.4)
135
- activerecord (= 6.1.4.4)
136
- activestorage (= 6.1.4.4)
137
- activesupport (= 6.1.4.4)
142
+ racc (1.6.2)
143
+ rack (2.2.6.2)
144
+ rack-test (2.0.2)
145
+ rack (>= 1.3)
146
+ rails (7.0.4.2)
147
+ actioncable (= 7.0.4.2)
148
+ actionmailbox (= 7.0.4.2)
149
+ actionmailer (= 7.0.4.2)
150
+ actionpack (= 7.0.4.2)
151
+ actiontext (= 7.0.4.2)
152
+ actionview (= 7.0.4.2)
153
+ activejob (= 7.0.4.2)
154
+ activemodel (= 7.0.4.2)
155
+ activerecord (= 7.0.4.2)
156
+ activestorage (= 7.0.4.2)
157
+ activesupport (= 7.0.4.2)
138
158
  bundler (>= 1.15.0)
139
- railties (= 6.1.4.4)
140
- sprockets-rails (>= 2.0.0)
159
+ railties (= 7.0.4.2)
141
160
  rails-dom-testing (2.0.3)
142
161
  activesupport (>= 4.2.0)
143
162
  nokogiri (>= 1.6)
144
- rails-html-sanitizer (1.4.2)
145
- loofah (~> 2.3)
146
- railties (6.1.4.4)
147
- actionpack (= 6.1.4.4)
148
- activesupport (= 6.1.4.4)
163
+ rails-html-sanitizer (1.5.0)
164
+ loofah (~> 2.19, >= 2.19.1)
165
+ railties (7.0.4.2)
166
+ actionpack (= 7.0.4.2)
167
+ activesupport (= 7.0.4.2)
149
168
  method_source
150
- rake (>= 0.13)
169
+ rake (>= 12.2)
151
170
  thor (~> 1.0)
152
- rainbow (3.0.0)
171
+ zeitwerk (~> 2.5)
172
+ rainbow (3.1.1)
153
173
  rake (13.0.6)
154
- rbtree (0.4.5)
155
- regexp_parser (2.1.1)
174
+ rbtree (0.4.6)
175
+ regexp_parser (2.7.0)
156
176
  rexml (3.2.5)
157
- rspec (3.10.0)
158
- rspec-core (~> 3.10.0)
159
- rspec-expectations (~> 3.10.0)
160
- rspec-mocks (~> 3.10.0)
161
- rspec-core (3.10.1)
162
- rspec-support (~> 3.10.0)
163
- rspec-expectations (3.10.1)
177
+ rspec (3.12.0)
178
+ rspec-core (~> 3.12.0)
179
+ rspec-expectations (~> 3.12.0)
180
+ rspec-mocks (~> 3.12.0)
181
+ rspec-core (3.12.1)
182
+ rspec-support (~> 3.12.0)
183
+ rspec-expectations (3.12.2)
164
184
  diff-lcs (>= 1.2.0, < 2.0)
165
- rspec-support (~> 3.10.0)
166
- rspec-mocks (3.10.2)
185
+ rspec-support (~> 3.12.0)
186
+ rspec-mocks (3.12.3)
167
187
  diff-lcs (>= 1.2.0, < 2.0)
168
- rspec-support (~> 3.10.0)
169
- rspec-support (3.10.2)
170
- rubocop (1.11.0)
188
+ rspec-support (~> 3.12.0)
189
+ rspec-support (3.12.0)
190
+ rubocop (1.43.0)
191
+ json (~> 2.3)
171
192
  parallel (~> 1.10)
172
- parser (>= 3.0.0.0)
193
+ parser (>= 3.2.0.0)
173
194
  rainbow (>= 2.2.2, < 4.0)
174
195
  regexp_parser (>= 1.8, < 3.0)
175
- rexml
176
- rubocop-ast (>= 1.2.0, < 2.0)
196
+ rexml (>= 3.2.5, < 4.0)
197
+ rubocop-ast (>= 1.24.1, < 2.0)
177
198
  ruby-progressbar (~> 1.7)
178
- unicode-display_width (>= 1.4.0, < 3.0)
179
- rubocop-ast (1.4.1)
180
- parser (>= 2.7.1.5)
181
- rubocop-config-umbrellio (1.11.0.40)
182
- rubocop (= 1.11.0)
183
- rubocop-performance (= 1.10.0)
184
- rubocop-rails (= 2.9.1)
185
- rubocop-rake (= 0.5.1)
186
- rubocop-rspec (= 2.2.0)
187
- rubocop-sequel (= 0.2.0)
188
- rubocop-performance (1.10.0)
189
- rubocop (>= 0.90.0, < 2.0)
199
+ unicode-display_width (>= 2.4.0, < 3.0)
200
+ rubocop-ast (1.26.0)
201
+ parser (>= 3.2.1.0)
202
+ rubocop-config-umbrellio (1.43.0.81)
203
+ rubocop (~> 1.43.0)
204
+ rubocop-performance (~> 1.15.0)
205
+ rubocop-rails (~> 2.17.0)
206
+ rubocop-rake (~> 0.6.0)
207
+ rubocop-rspec (~> 2.16.0)
208
+ rubocop-sequel (~> 0.3.3)
209
+ rubocop-performance (1.15.2)
210
+ rubocop (>= 1.7.0, < 2.0)
190
211
  rubocop-ast (>= 0.4.0)
191
- rubocop-rails (2.9.1)
212
+ rubocop-rails (2.17.4)
192
213
  activesupport (>= 4.2.0)
193
214
  rack (>= 1.1)
194
- rubocop (>= 0.90.0, < 2.0)
195
- rubocop-rake (0.5.1)
196
- rubocop
197
- rubocop-rspec (2.2.0)
215
+ rubocop (>= 1.33.0, < 2.0)
216
+ rubocop-rake (0.6.0)
198
217
  rubocop (~> 1.0)
199
- rubocop-ast (>= 1.1.0)
200
- rubocop-sequel (0.2.0)
218
+ rubocop-rspec (2.16.0)
219
+ rubocop (~> 1.33)
220
+ rubocop-sequel (0.3.4)
201
221
  rubocop (~> 1.0)
202
222
  ruby-progressbar (1.11.0)
203
223
  ruby2_keywords (0.0.5)
204
- self_data (1.2.1)
205
- sequel (5.43.0)
224
+ self_data (1.3.0)
225
+ sequel (5.65.0)
206
226
  serverengine (2.0.7)
207
227
  sigdump (~> 0.2.2)
208
- set (1.0.2)
228
+ set (1.0.3)
209
229
  sigdump (0.2.4)
210
- simplecov (0.21.2)
230
+ simplecov (0.22.0)
211
231
  docile (~> 1.1)
212
232
  simplecov-html (~> 0.11)
213
233
  simplecov_json_formatter (~> 0.1)
214
234
  simplecov-html (0.12.3)
215
235
  simplecov-lcov (0.8.0)
216
- simplecov_json_formatter (0.1.2)
236
+ simplecov_json_formatter (0.1.4)
217
237
  sneakers (2.11.0)
218
238
  bunny (~> 2.12)
219
239
  concurrent-ruby (~> 1.0)
@@ -223,24 +243,18 @@ GEM
223
243
  sorted_set (1.0.3)
224
244
  rbtree
225
245
  set (~> 1.0)
226
- sprockets (4.0.2)
227
- concurrent-ruby (~> 1.0)
228
- rack (> 1, < 3)
229
- sprockets-rails (3.4.2)
230
- actionpack (>= 5.2)
231
- activesupport (>= 5.2)
232
- sprockets (>= 3.0.0)
233
246
  tainbox (2.1.2)
234
247
  activesupport
235
248
  thor (1.2.1)
236
- timecop (0.9.4)
237
- tzinfo (2.0.4)
249
+ timecop (0.9.6)
250
+ timeout (0.3.1)
251
+ tzinfo (2.0.6)
238
252
  concurrent-ruby (~> 1.0)
239
- unicode-display_width (2.0.0)
253
+ unicode-display_width (2.4.2)
240
254
  websocket-driver (0.7.5)
241
255
  websocket-extensions (>= 0.1.0)
242
256
  websocket-extensions (0.1.5)
243
- zeitwerk (2.5.4)
257
+ zeitwerk (2.6.7)
244
258
 
245
259
  PLATFORMS
246
260
  ruby
@@ -262,4 +276,4 @@ DEPENDENCIES
262
276
  timecop
263
277
 
264
278
  BUNDLED WITH
265
- 2.2.27
279
+ 2.4.6
data/README.md CHANGED
@@ -20,13 +20,7 @@ require 'table_sync'
20
20
 
21
21
  ## Usage
22
22
 
23
- - [Message protocol](docs/message_protocol.md)
24
- - [Publishing](docs/publishing.md)
25
- - [Publishers](docs/publishing/publishers.md)
26
- - [Configuration](docs/publishing/configuration.md)
27
- - [Manual Sync (examples)](docs/publishing/manual.md)
28
- - [Receiving](docs/receiving.md)
29
- - [Notifications](docs/notifications.md)
23
+ Usage information available in the [Wiki](https://github.com/umbrellio/table_sync/wiki).
30
24
 
31
25
  ## Contributing
32
26
 
@@ -4,6 +4,7 @@ module TableSync
4
4
  Error = Class.new(StandardError)
5
5
 
6
6
  NoObjectsForSyncError = Class.new(Error)
7
+ InvalidConfig = Class.new(Error)
7
8
 
8
9
  class EventError < Error
9
10
  def initialize(event)
@@ -61,9 +62,9 @@ module TableSync
61
62
 
62
63
  case type
63
64
  when :req
64
- #:nocov:
65
+ # :nocov:
65
66
  name.to_s
66
- #:nocov:
67
+ # :nocov:
67
68
  when :keyreq
68
69
  "#{name}:"
69
70
  when :block
@@ -1,9 +1,31 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module TableSync::Instrument
4
- module_function
4
+ NOTIFIER_REQUIRED_ARGS = %i[table schema event count direction].freeze
5
+
6
+ extend self
5
7
 
6
8
  def notify(**args)
7
- TableSync.notifier&.notify(**args)
9
+ return unless TableSync.notify?
10
+ raise(TableSync::InvalidConfig, error_message) if TableSync.notifier.nil?
11
+ validate_args!(**args)
12
+
13
+ TableSync.notifier.notify(**args)
14
+ end
15
+
16
+ private
17
+
18
+ def error_message
19
+ <<~MSG.squish
20
+ Notifications are enabled, but no notifier is set in the config.
21
+ Need to setup notifier by specifying TableSync#notifier setting.
22
+ MSG
23
+ end
24
+
25
+ def validate_args!(**args)
26
+ missing_keywords = NOTIFIER_REQUIRED_ARGS - args.compact.keys
27
+ return if missing_keywords.blank?
28
+
29
+ raise ArgumentError, "Missing keywords: #{missing_keywords.join(', ')}."
8
30
  end
9
31
  end
@@ -2,6 +2,10 @@
2
2
 
3
3
  module TableSync::ORMAdapter
4
4
  class ActiveRecord < Base
5
+ def self.model_naming(object_class)
6
+ TableSync::NamingResolver::ActiveRecord.new(table_name: object_class.table_name)
7
+ end
8
+
5
9
  def find
6
10
  @object = object_class.find_by(needle)
7
11
 
@@ -17,9 +21,5 @@ module TableSync::ORMAdapter
17
21
  def attributes
18
22
  object.attributes.symbolize_keys
19
23
  end
20
-
21
- def self.model_naming(object_class)
22
- TableSync::NamingResolver::ActiveRecord.new(table_name: object_class.table_name)
23
- end
24
24
  end
25
25
  end
@@ -4,6 +4,12 @@ module TableSync::ORMAdapter
4
4
  class Base
5
5
  attr_reader :object, :object_class, :object_data
6
6
 
7
+ # :nocov:
8
+ def self.model_naming
9
+ raise NotImplementedError
10
+ end
11
+ # :nocov:
12
+
7
13
  def initialize(object_class, object_data)
8
14
  @object_class = object_class
9
15
  @object_data = object_data.symbolize_keys
@@ -83,10 +89,6 @@ module TableSync::ORMAdapter
83
89
  def attributes
84
90
  raise NotImplementedError
85
91
  end
86
-
87
- def self.model_naming
88
- raise NotImplementedError
89
- end
90
92
  # :nocov:
91
93
  end
92
94
  end
@@ -2,6 +2,12 @@
2
2
 
3
3
  module TableSync::ORMAdapter
4
4
  class Sequel < Base
5
+ def self.model_naming(object_class)
6
+ TableSync::NamingResolver::Sequel.new(
7
+ table_name: object_class.table_name, db: object_class.db,
8
+ )
9
+ end
10
+
5
11
  def attributes
6
12
  object.values
7
13
  end
@@ -19,11 +25,5 @@ module TableSync::ORMAdapter
19
25
 
20
26
  super
21
27
  end
22
-
23
- def self.model_naming(object_class)
24
- TableSync::NamingResolver::Sequel.new(
25
- table_name: object_class.table_name, db: object_class.db,
26
- )
27
- end
28
28
  end
29
29
  end
@@ -2,24 +2,28 @@
2
2
 
3
3
  module TableSync::Publishing::Data
4
4
  class Raw
5
- attr_reader :object_class, :attributes_for_sync, :event
5
+ attr_reader :model_name, :attributes_for_sync, :event
6
6
 
7
- def initialize(object_class:, attributes_for_sync:, event:)
8
- @object_class = object_class
7
+ def initialize(model_name:, attributes_for_sync:, event:)
8
+ @model_name = model_name
9
9
  @attributes_for_sync = attributes_for_sync
10
10
  @event = TableSync::Event.new(event)
11
11
  end
12
12
 
13
13
  def construct
14
14
  {
15
- model: object_class,
16
- attributes: attributes_for_sync,
15
+ model: model_name,
16
+ attributes: wrapped_attributes_for_sync,
17
17
  version: version,
18
18
  event: event.resolve,
19
19
  metadata: event.metadata,
20
20
  }
21
21
  end
22
22
 
23
+ def wrapped_attributes_for_sync
24
+ attributes_for_sync.is_a?(Array) ? attributes_for_sync : [attributes_for_sync]
25
+ end
26
+
23
27
  def version
24
28
  Time.current.to_f
25
29
  end