table_sync 6.1.0 → 6.5.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: 10bb9ae0cf3986bb7feba1c61403b8d459a7bc8efc3dc3bcbf3db47306efee5e
4
- data.tar.gz: 1d3d5b855d79efb73e2816ac617b8b73c1a85cc2a3e0cb9b2f975f07c86e0de3
3
+ metadata.gz: 188faa6e4d1f0f2c4f75c856a0db87aabafa32f2d52e65365f03f3ce2e683c33
4
+ data.tar.gz: b9ea561a3f7ad3bf31359d32e81997dd91c6dcdb9beb8f6a90cbbe81955a974b
5
5
  SHA512:
6
- metadata.gz: f569ca939a161a9e1a17f998066cbdf86483b28f4742efd1fd614a33689cbe7e6aa5cadba85e973b271337cc3207e9535e1ddcb42949f53948d444121d107d32
7
- data.tar.gz: 78ab27afcdb65a1dd0baaafe8f83f5812822bb5cdf002b3b9b31c3619c6ccc74d331e130f2170aa1d9063e36c88c05e24c8f8dc8dbeb2d08241a90cdd4a85603
6
+ metadata.gz: 228c9b2ec6f2fb08edea95753cd6e05a570ef61358823bc3ab33daf32ec30bfc926dfbcdbcfbe74fb38a850a8afb4e5bc9a71eba43277fc1e52a625e5cf79ee6
7
+ data.tar.gz: 0c78b40a8a4c2b5d852fcf70559e419dc62a70bc9fc0240d2bd30d9f7145f093bc432a434b0083b8d55975ff9302776c8912b394f67a825148732d6de7430d4c
@@ -30,7 +30,7 @@ jobs:
30
30
  strategy:
31
31
  fail-fast: false
32
32
  matrix:
33
- ruby: ["2.7", "3.0", "3.1"]
33
+ ruby: ["3.0", "3.1", "3.2", "3.3"]
34
34
 
35
35
  name: ${{ matrix.ruby }}
36
36
 
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.7
5
+ TargetRubyVersion: 3.0
6
6
  Include:
7
7
  - bin/*
8
8
  - lib/**/*.rb
@@ -46,3 +46,9 @@ Style/OpenStructUse:
46
46
 
47
47
  RSpec/PendingWithoutReason:
48
48
  Enabled: false # Many false positives
49
+
50
+ RSpec/SkipBlockInsideExample:
51
+ Enabled: false # Many false positives
52
+
53
+ RSpec/IndexedLet:
54
+ Enabled: false
data/CHANGELOG.md CHANGED
@@ -1,6 +1,40 @@
1
1
  # Changelog
2
2
  All notable changes to this project will be documented in this file.
3
3
 
4
+ ## [6.5.0] - 2024-03-19
5
+ ### Added
6
+ - Add ruby 3.3 to ci workflow
7
+
8
+ ### Changed
9
+ - Add expiration time for cache used in debouncing sync
10
+ - Update dependencies
11
+ - Fix rubocop issue
12
+ - Drop ruby 2.7 support
13
+
14
+ ### Removed
15
+ - Remove ruby 2.7 from ci workflow
16
+
17
+ ## [6.4.2] - 2023-11-14
18
+ ### Added
19
+ - Required fields allow accepting empty collections.
20
+
21
+ ## [6.4.1] - 2023-08-15
22
+ ### Added
23
+ - Required fields validation for the Raw and Batch publishers.
24
+
25
+ ## [6.4.0] - 2023-08-15
26
+ ### Changed
27
+ - Fix sort in receiving (#79).
28
+
29
+ ## [6.3.0] - 2023-07-24
30
+ ### Changed
31
+ - Send all original attributes for `delete` events instead of just PK.
32
+
33
+ ## [6.2.0] - 2023-06-29
34
+ ### Changed
35
+ - `rabbit_messaging` gem version is locked on `~> 0.13` in order to provide a way to keep "up-to-date"
36
+ the actual rabbit_messaging gem version on our projects with table_sync update;
37
+
4
38
  ## [6.1.0] - 2022-11-24
5
39
  ### Changed
6
40
 
data/Gemfile CHANGED
@@ -3,3 +3,19 @@
3
3
  source "https://rubygems.org"
4
4
 
5
5
  gemspec
6
+
7
+ gem "rspec"
8
+ gem "rubocop-config-umbrellio"
9
+ gem "simplecov"
10
+ gem "simplecov-lcov"
11
+
12
+ gem "activejob"
13
+ gem "activerecord"
14
+ gem "pg"
15
+ gem "sequel"
16
+ gem "timecop"
17
+
18
+ gem "bundler"
19
+ gem "bundler-audit"
20
+ gem "pry"
21
+ gem "rake"
data/Gemfile.lock CHANGED
@@ -1,76 +1,76 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- table_sync (6.1.0)
4
+ table_sync (6.5.0)
5
5
  memery
6
- rabbit_messaging
6
+ rabbit_messaging (~> 0.13)
7
7
  rails
8
8
  self_data
9
9
 
10
10
  GEM
11
11
  remote: https://rubygems.org/
12
12
  specs:
13
- actioncable (7.0.4.2)
14
- actionpack (= 7.0.4.2)
15
- activesupport (= 7.0.4.2)
13
+ actioncable (7.0.8.1)
14
+ actionpack (= 7.0.8.1)
15
+ activesupport (= 7.0.8.1)
16
16
  nio4r (~> 2.0)
17
17
  websocket-driver (>= 0.6.1)
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)
18
+ actionmailbox (7.0.8.1)
19
+ actionpack (= 7.0.8.1)
20
+ activejob (= 7.0.8.1)
21
+ activerecord (= 7.0.8.1)
22
+ activestorage (= 7.0.8.1)
23
+ activesupport (= 7.0.8.1)
24
24
  mail (>= 2.7.1)
25
25
  net-imap
26
26
  net-pop
27
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)
28
+ actionmailer (7.0.8.1)
29
+ actionpack (= 7.0.8.1)
30
+ actionview (= 7.0.8.1)
31
+ activejob (= 7.0.8.1)
32
+ activesupport (= 7.0.8.1)
33
33
  mail (~> 2.5, >= 2.5.4)
34
34
  net-imap
35
35
  net-pop
36
36
  net-smtp
37
37
  rails-dom-testing (~> 2.0)
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)
38
+ actionpack (7.0.8.1)
39
+ actionview (= 7.0.8.1)
40
+ activesupport (= 7.0.8.1)
41
+ rack (~> 2.0, >= 2.2.4)
42
42
  rack-test (>= 0.6.3)
43
43
  rails-dom-testing (~> 2.0)
44
44
  rails-html-sanitizer (~> 1.0, >= 1.2.0)
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)
45
+ actiontext (7.0.8.1)
46
+ actionpack (= 7.0.8.1)
47
+ activerecord (= 7.0.8.1)
48
+ activestorage (= 7.0.8.1)
49
+ activesupport (= 7.0.8.1)
50
50
  globalid (>= 0.6.0)
51
51
  nokogiri (>= 1.8.5)
52
- actionview (7.0.4.2)
53
- activesupport (= 7.0.4.2)
52
+ actionview (7.0.8.1)
53
+ activesupport (= 7.0.8.1)
54
54
  builder (~> 3.1)
55
55
  erubi (~> 1.4)
56
56
  rails-dom-testing (~> 2.0)
57
57
  rails-html-sanitizer (~> 1.1, >= 1.2.0)
58
- activejob (7.0.4.2)
59
- activesupport (= 7.0.4.2)
58
+ activejob (7.0.8.1)
59
+ activesupport (= 7.0.8.1)
60
60
  globalid (>= 0.3.6)
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)
61
+ activemodel (7.0.8.1)
62
+ activesupport (= 7.0.8.1)
63
+ activerecord (7.0.8.1)
64
+ activemodel (= 7.0.8.1)
65
+ activesupport (= 7.0.8.1)
66
+ activestorage (7.0.8.1)
67
+ actionpack (= 7.0.8.1)
68
+ activejob (= 7.0.8.1)
69
+ activerecord (= 7.0.8.1)
70
+ activesupport (= 7.0.8.1)
71
71
  marcel (~> 1.0)
72
72
  mini_mime (>= 1.1.0)
73
- activesupport (7.0.4.2)
73
+ activesupport (7.0.8.1)
74
74
  concurrent-ruby (~> 1.0, >= 1.0.2)
75
75
  i18n (>= 1.6, < 2)
76
76
  minitest (>= 5.1)
@@ -81,39 +81,39 @@ GEM
81
81
  bundler-audit (0.9.1)
82
82
  bundler (>= 1.2.0, < 3)
83
83
  thor (~> 1.0)
84
- bunny (2.20.3)
84
+ bunny (2.22.0)
85
85
  amq-protocol (~> 2.3, >= 2.3.1)
86
86
  sorted_set (~> 1, >= 1.0.2)
87
87
  coderay (1.1.3)
88
- concurrent-ruby (1.2.0)
88
+ concurrent-ruby (1.2.2)
89
89
  crass (1.0.6)
90
90
  date (3.3.3)
91
91
  diff-lcs (1.5.0)
92
92
  docile (1.4.0)
93
93
  erubi (1.12.0)
94
- globalid (1.1.0)
95
- activesupport (>= 5.0)
96
- i18n (1.12.0)
94
+ globalid (1.2.1)
95
+ activesupport (>= 6.1)
96
+ i18n (1.14.1)
97
97
  concurrent-ruby (~> 1.0)
98
98
  json (2.6.3)
99
99
  lamian (1.7.0)
100
100
  rails (>= 4.2)
101
- loofah (2.19.1)
101
+ loofah (2.21.3)
102
102
  crass (~> 1.0.2)
103
- nokogiri (>= 1.5.9)
103
+ nokogiri (>= 1.12.0)
104
104
  mail (2.8.1)
105
105
  mini_mime (>= 0.1.1)
106
106
  net-imap
107
107
  net-pop
108
108
  net-smtp
109
- marcel (1.0.2)
110
- memery (1.4.1)
109
+ marcel (1.0.4)
110
+ memery (1.5.0)
111
111
  ruby2_keywords (~> 0.0.2)
112
112
  method_source (1.0.0)
113
- mini_mime (1.1.2)
114
- mini_portile2 (2.8.1)
115
- minitest (5.17.0)
116
- net-imap (0.3.4)
113
+ mini_mime (1.1.5)
114
+ mini_portile2 (2.8.4)
115
+ minitest (5.20.0)
116
+ net-imap (0.3.7)
117
117
  date
118
118
  net-protocol
119
119
  net-pop (0.1.2)
@@ -122,49 +122,52 @@ GEM
122
122
  timeout
123
123
  net-smtp (0.3.3)
124
124
  net-protocol
125
- nio4r (2.5.8)
126
- nokogiri (1.14.2)
127
- mini_portile2 (~> 2.8.0)
125
+ nio4r (2.5.9)
126
+ nokogiri (1.16.3)
127
+ mini_portile2 (~> 2.8.2)
128
128
  racc (~> 1.4)
129
- parallel (1.22.1)
130
- parser (3.2.1.0)
129
+ parallel (1.23.0)
130
+ parser (3.2.2.3)
131
131
  ast (~> 2.4.1)
132
- pg (1.4.5)
132
+ racc
133
+ pg (1.5.3)
133
134
  pry (0.14.2)
134
135
  coderay (~> 1.1)
135
136
  method_source (~> 1.0)
136
- rabbit_messaging (0.12.1)
137
+ rabbit_messaging (0.13.0)
137
138
  bunny (~> 2.0)
138
139
  lamian
139
140
  rails (>= 5.2)
140
141
  sneakers (~> 2.0)
141
142
  tainbox
142
- racc (1.6.2)
143
- rack (2.2.6.2)
144
- rack-test (2.0.2)
143
+ racc (1.7.1)
144
+ rack (2.2.8.1)
145
+ rack-test (2.1.0)
145
146
  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)
147
+ rails (7.0.8.1)
148
+ actioncable (= 7.0.8.1)
149
+ actionmailbox (= 7.0.8.1)
150
+ actionmailer (= 7.0.8.1)
151
+ actionpack (= 7.0.8.1)
152
+ actiontext (= 7.0.8.1)
153
+ actionview (= 7.0.8.1)
154
+ activejob (= 7.0.8.1)
155
+ activemodel (= 7.0.8.1)
156
+ activerecord (= 7.0.8.1)
157
+ activestorage (= 7.0.8.1)
158
+ activesupport (= 7.0.8.1)
158
159
  bundler (>= 1.15.0)
159
- railties (= 7.0.4.2)
160
- rails-dom-testing (2.0.3)
161
- activesupport (>= 4.2.0)
160
+ railties (= 7.0.8.1)
161
+ rails-dom-testing (2.2.0)
162
+ activesupport (>= 5.0.0)
163
+ minitest
162
164
  nokogiri (>= 1.6)
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)
165
+ rails-html-sanitizer (1.6.0)
166
+ loofah (~> 2.21)
167
+ nokogiri (~> 1.14)
168
+ railties (7.0.8.1)
169
+ actionpack (= 7.0.8.1)
170
+ activesupport (= 7.0.8.1)
168
171
  method_source
169
172
  rake (>= 12.2)
170
173
  thor (~> 1.0)
@@ -172,61 +175,64 @@ GEM
172
175
  rainbow (3.1.1)
173
176
  rake (13.0.6)
174
177
  rbtree (0.4.6)
175
- regexp_parser (2.7.0)
176
- rexml (3.2.5)
178
+ regexp_parser (2.8.1)
179
+ rexml (3.2.6)
177
180
  rspec (3.12.0)
178
181
  rspec-core (~> 3.12.0)
179
182
  rspec-expectations (~> 3.12.0)
180
183
  rspec-mocks (~> 3.12.0)
181
- rspec-core (3.12.1)
184
+ rspec-core (3.12.2)
182
185
  rspec-support (~> 3.12.0)
183
- rspec-expectations (3.12.2)
186
+ rspec-expectations (3.12.3)
184
187
  diff-lcs (>= 1.2.0, < 2.0)
185
188
  rspec-support (~> 3.12.0)
186
- rspec-mocks (3.12.3)
189
+ rspec-mocks (3.12.6)
187
190
  diff-lcs (>= 1.2.0, < 2.0)
188
191
  rspec-support (~> 3.12.0)
189
- rspec-support (3.12.0)
190
- rubocop (1.43.0)
192
+ rspec-support (3.12.1)
193
+ rubocop (1.50.2)
191
194
  json (~> 2.3)
192
195
  parallel (~> 1.10)
193
196
  parser (>= 3.2.0.0)
194
197
  rainbow (>= 2.2.2, < 4.0)
195
198
  regexp_parser (>= 1.8, < 3.0)
196
199
  rexml (>= 3.2.5, < 4.0)
197
- rubocop-ast (>= 1.24.1, < 2.0)
200
+ rubocop-ast (>= 1.28.0, < 2.0)
198
201
  ruby-progressbar (~> 1.7)
199
202
  unicode-display_width (>= 2.4.0, < 3.0)
200
- rubocop-ast (1.26.0)
203
+ rubocop-ast (1.29.0)
201
204
  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)
205
+ rubocop-capybara (2.18.0)
206
+ rubocop (~> 1.41)
207
+ rubocop-config-umbrellio (1.50.0.85)
208
+ rubocop (~> 1.50.0)
209
+ rubocop-performance (~> 1.17.0)
210
+ rubocop-rails (~> 2.19.0)
206
211
  rubocop-rake (~> 0.6.0)
207
- rubocop-rspec (~> 2.16.0)
212
+ rubocop-rspec (~> 2.20.0)
208
213
  rubocop-sequel (~> 0.3.3)
209
- rubocop-performance (1.15.2)
214
+ rubocop-performance (1.17.1)
210
215
  rubocop (>= 1.7.0, < 2.0)
211
216
  rubocop-ast (>= 0.4.0)
212
- rubocop-rails (2.17.4)
217
+ rubocop-rails (2.19.1)
213
218
  activesupport (>= 4.2.0)
214
219
  rack (>= 1.1)
215
220
  rubocop (>= 1.33.0, < 2.0)
216
221
  rubocop-rake (0.6.0)
217
222
  rubocop (~> 1.0)
218
- rubocop-rspec (2.16.0)
223
+ rubocop-rspec (2.20.0)
219
224
  rubocop (~> 1.33)
225
+ rubocop-capybara (~> 2.17)
220
226
  rubocop-sequel (0.3.4)
221
227
  rubocop (~> 1.0)
222
- ruby-progressbar (1.11.0)
228
+ ruby-progressbar (1.13.0)
223
229
  ruby2_keywords (0.0.5)
224
230
  self_data (1.3.0)
225
- sequel (5.65.0)
231
+ sequel (5.71.0)
226
232
  serverengine (2.0.7)
227
233
  sigdump (~> 0.2.2)
228
234
  set (1.0.3)
229
- sigdump (0.2.4)
235
+ sigdump (0.2.5)
230
236
  simplecov (0.22.0)
231
237
  docile (~> 1.1)
232
238
  simplecov-html (~> 0.11)
@@ -245,16 +251,16 @@ GEM
245
251
  set (~> 1.0)
246
252
  tainbox (2.1.2)
247
253
  activesupport
248
- thor (1.2.1)
249
- timecop (0.9.6)
250
- timeout (0.3.1)
254
+ thor (1.2.2)
255
+ timecop (0.9.7)
256
+ timeout (0.4.0)
251
257
  tzinfo (2.0.6)
252
258
  concurrent-ruby (~> 1.0)
253
259
  unicode-display_width (2.4.2)
254
- websocket-driver (0.7.5)
260
+ websocket-driver (0.7.6)
255
261
  websocket-extensions (>= 0.1.0)
256
262
  websocket-extensions (0.1.5)
257
- zeitwerk (2.6.7)
263
+ zeitwerk (2.6.11)
258
264
 
259
265
  PLATFORMS
260
266
  ruby
@@ -53,7 +53,7 @@ module TableSync::ORMAdapter
53
53
  if object.respond_to?(:attributes_for_destroy)
54
54
  object.attributes_for_destroy
55
55
  else
56
- needle
56
+ attributes
57
57
  end
58
58
  end
59
59
 
@@ -2,6 +2,7 @@
2
2
 
3
3
  class TableSync::Publishing::Batch
4
4
  include Tainbox
5
+ include TableSync::Utils::RequiredValidator
5
6
 
6
7
  attribute :object_class
7
8
  attribute :original_attributes
@@ -11,6 +12,8 @@ class TableSync::Publishing::Batch
11
12
 
12
13
  attribute :event, default: :update
13
14
 
15
+ require_attributes :object_class, :original_attributes
16
+
14
17
  def publish_later
15
18
  job.perform_later(job_attributes)
16
19
  end
@@ -124,7 +124,11 @@ module TableSync::Publishing::Helpers
124
124
  end
125
125
 
126
126
  def cache_next_sync_time
127
- Rails.cache.write(cache_key, next_sync_time)
127
+ Rails.cache.write(
128
+ cache_key,
129
+ next_sync_time,
130
+ expires_at: next_sync_time + debounce_time.seconds,
131
+ )
128
132
  end
129
133
 
130
134
  def cache_key
@@ -2,6 +2,7 @@
2
2
 
3
3
  class TableSync::Publishing::Raw
4
4
  include Tainbox
5
+ include TableSync::Utils::RequiredValidator
5
6
 
6
7
  attribute :model_name
7
8
  attribute :table_name
@@ -13,6 +14,8 @@ class TableSync::Publishing::Raw
13
14
 
14
15
  attribute :event, default: :update
15
16
 
17
+ require_attributes :model_name, :original_attributes
18
+
16
19
  def publish_now
17
20
  message.publish
18
21
  end
@@ -23,7 +23,7 @@ class TableSync::Receiving::Handler < Rabbit::EventHandler
23
23
 
24
24
  validate_data(data, target_keys: target_keys)
25
25
 
26
- data.sort_by! { |row| row.values_at(*target_keys).to_s }
26
+ data.sort_by! { |row| row.values_at(*target_keys).map { |value| sort_key(value) } }
27
27
 
28
28
  params = { data: data, target_keys: target_keys, version_key: version_key }
29
29
 
@@ -149,4 +149,8 @@ class TableSync::Receiving::Handler < Rabbit::EventHandler
149
149
  end
150
150
  end
151
151
  end
152
+
153
+ def sort_key(value)
154
+ value.is_a?(Comparable) ? value : value.to_s
155
+ end
152
156
  end
@@ -0,0 +1,43 @@
1
+ # frozen_string_literal: true
2
+
3
+ module TableSync::Utils::RequiredValidator
4
+ module PrependedInitialization
5
+ def initialize(*)
6
+ super
7
+
8
+ not_filled_attrs = calculate_not_filled_attributes
9
+ if not_filled_attrs.present?
10
+ raise(
11
+ ArgumentError,
12
+ "Some of required attributes is not provided: #{not_filled_attrs.inspect}",
13
+ )
14
+ end
15
+ end
16
+ end
17
+
18
+ module ClassMethods
19
+ def require_attributes(*attributes)
20
+ _required_attributes.push(*attributes)
21
+ end
22
+
23
+ def _required_attributes
24
+ @_required_attributes ||= []
25
+ end
26
+ end
27
+
28
+ module InstanceMethods
29
+ private
30
+
31
+ def calculate_not_filled_attributes
32
+ attributes
33
+ .select { |key, value| key.in?(self.class._required_attributes) && value.nil? }
34
+ .keys
35
+ end
36
+ end
37
+
38
+ def self.included(klass)
39
+ klass.prepend(PrependedInitialization)
40
+ klass.extend(ClassMethods)
41
+ klass.include(InstanceMethods)
42
+ end
43
+ end
@@ -5,5 +5,6 @@ module TableSync
5
5
  require_relative "utils/proc_array"
6
6
  require_relative "utils/proc_keywords_resolver"
7
7
  require_relative "utils/interface_checker"
8
+ require_relative "utils/required_validator"
8
9
  end
9
10
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module TableSync
4
- VERSION = "6.1.0"
4
+ VERSION = "6.5.0"
5
5
  end
data/table_sync.gemspec CHANGED
@@ -5,7 +5,7 @@ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
5
5
  require "table_sync/version"
6
6
 
7
7
  Gem::Specification.new do |spec|
8
- spec.required_ruby_version = ">= 2.7.0"
8
+ spec.required_ruby_version = ">= 3.0.0"
9
9
 
10
10
  spec.name = "table_sync"
11
11
  spec.version = TableSync::VERSION
@@ -27,23 +27,7 @@ Gem::Specification.new do |spec|
27
27
  end
28
28
 
29
29
  spec.add_runtime_dependency "memery"
30
- spec.add_runtime_dependency "rabbit_messaging"
30
+ spec.add_runtime_dependency "rabbit_messaging", "~> 0.13"
31
31
  spec.add_runtime_dependency "rails"
32
32
  spec.add_runtime_dependency "self_data"
33
-
34
- spec.add_development_dependency "rspec"
35
- spec.add_development_dependency "rubocop-config-umbrellio"
36
- spec.add_development_dependency "simplecov"
37
- spec.add_development_dependency "simplecov-lcov"
38
-
39
- spec.add_development_dependency "activejob"
40
- spec.add_development_dependency "activerecord"
41
- spec.add_development_dependency "pg"
42
- spec.add_development_dependency "sequel"
43
- spec.add_development_dependency "timecop"
44
-
45
- spec.add_development_dependency "bundler"
46
- spec.add_development_dependency "bundler-audit"
47
- spec.add_development_dependency "pry"
48
- spec.add_development_dependency "rake"
49
33
  end
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: 6.1.0
4
+ version: 6.5.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Umbrellio
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-02-16 00:00:00.000000000 Z
11
+ date: 2024-03-25 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: memery
@@ -28,16 +28,16 @@ dependencies:
28
28
  name: rabbit_messaging
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - ">="
31
+ - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: '0'
33
+ version: '0.13'
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
- - - ">="
38
+ - - "~>"
39
39
  - !ruby/object:Gem::Version
40
- version: '0'
40
+ version: '0.13'
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: rails
43
43
  requirement: !ruby/object:Gem::Requirement
@@ -66,188 +66,6 @@ dependencies:
66
66
  - - ">="
67
67
  - !ruby/object:Gem::Version
68
68
  version: '0'
69
- - !ruby/object:Gem::Dependency
70
- name: rspec
71
- requirement: !ruby/object:Gem::Requirement
72
- requirements:
73
- - - ">="
74
- - !ruby/object:Gem::Version
75
- version: '0'
76
- type: :development
77
- prerelease: false
78
- version_requirements: !ruby/object:Gem::Requirement
79
- requirements:
80
- - - ">="
81
- - !ruby/object:Gem::Version
82
- version: '0'
83
- - !ruby/object:Gem::Dependency
84
- name: rubocop-config-umbrellio
85
- requirement: !ruby/object:Gem::Requirement
86
- requirements:
87
- - - ">="
88
- - !ruby/object:Gem::Version
89
- version: '0'
90
- type: :development
91
- prerelease: false
92
- version_requirements: !ruby/object:Gem::Requirement
93
- requirements:
94
- - - ">="
95
- - !ruby/object:Gem::Version
96
- version: '0'
97
- - !ruby/object:Gem::Dependency
98
- name: simplecov
99
- requirement: !ruby/object:Gem::Requirement
100
- requirements:
101
- - - ">="
102
- - !ruby/object:Gem::Version
103
- version: '0'
104
- type: :development
105
- prerelease: false
106
- version_requirements: !ruby/object:Gem::Requirement
107
- requirements:
108
- - - ">="
109
- - !ruby/object:Gem::Version
110
- version: '0'
111
- - !ruby/object:Gem::Dependency
112
- name: simplecov-lcov
113
- requirement: !ruby/object:Gem::Requirement
114
- requirements:
115
- - - ">="
116
- - !ruby/object:Gem::Version
117
- version: '0'
118
- type: :development
119
- prerelease: false
120
- version_requirements: !ruby/object:Gem::Requirement
121
- requirements:
122
- - - ">="
123
- - !ruby/object:Gem::Version
124
- version: '0'
125
- - !ruby/object:Gem::Dependency
126
- name: activejob
127
- requirement: !ruby/object:Gem::Requirement
128
- requirements:
129
- - - ">="
130
- - !ruby/object:Gem::Version
131
- version: '0'
132
- type: :development
133
- prerelease: false
134
- version_requirements: !ruby/object:Gem::Requirement
135
- requirements:
136
- - - ">="
137
- - !ruby/object:Gem::Version
138
- version: '0'
139
- - !ruby/object:Gem::Dependency
140
- name: activerecord
141
- requirement: !ruby/object:Gem::Requirement
142
- requirements:
143
- - - ">="
144
- - !ruby/object:Gem::Version
145
- version: '0'
146
- type: :development
147
- prerelease: false
148
- version_requirements: !ruby/object:Gem::Requirement
149
- requirements:
150
- - - ">="
151
- - !ruby/object:Gem::Version
152
- version: '0'
153
- - !ruby/object:Gem::Dependency
154
- name: pg
155
- requirement: !ruby/object:Gem::Requirement
156
- requirements:
157
- - - ">="
158
- - !ruby/object:Gem::Version
159
- version: '0'
160
- type: :development
161
- prerelease: false
162
- version_requirements: !ruby/object:Gem::Requirement
163
- requirements:
164
- - - ">="
165
- - !ruby/object:Gem::Version
166
- version: '0'
167
- - !ruby/object:Gem::Dependency
168
- name: sequel
169
- requirement: !ruby/object:Gem::Requirement
170
- requirements:
171
- - - ">="
172
- - !ruby/object:Gem::Version
173
- version: '0'
174
- type: :development
175
- prerelease: false
176
- version_requirements: !ruby/object:Gem::Requirement
177
- requirements:
178
- - - ">="
179
- - !ruby/object:Gem::Version
180
- version: '0'
181
- - !ruby/object:Gem::Dependency
182
- name: timecop
183
- requirement: !ruby/object:Gem::Requirement
184
- requirements:
185
- - - ">="
186
- - !ruby/object:Gem::Version
187
- version: '0'
188
- type: :development
189
- prerelease: false
190
- version_requirements: !ruby/object:Gem::Requirement
191
- requirements:
192
- - - ">="
193
- - !ruby/object:Gem::Version
194
- version: '0'
195
- - !ruby/object:Gem::Dependency
196
- name: bundler
197
- requirement: !ruby/object:Gem::Requirement
198
- requirements:
199
- - - ">="
200
- - !ruby/object:Gem::Version
201
- version: '0'
202
- type: :development
203
- prerelease: false
204
- version_requirements: !ruby/object:Gem::Requirement
205
- requirements:
206
- - - ">="
207
- - !ruby/object:Gem::Version
208
- version: '0'
209
- - !ruby/object:Gem::Dependency
210
- name: bundler-audit
211
- requirement: !ruby/object:Gem::Requirement
212
- requirements:
213
- - - ">="
214
- - !ruby/object:Gem::Version
215
- version: '0'
216
- type: :development
217
- prerelease: false
218
- version_requirements: !ruby/object:Gem::Requirement
219
- requirements:
220
- - - ">="
221
- - !ruby/object:Gem::Version
222
- version: '0'
223
- - !ruby/object:Gem::Dependency
224
- name: pry
225
- requirement: !ruby/object:Gem::Requirement
226
- requirements:
227
- - - ">="
228
- - !ruby/object:Gem::Version
229
- version: '0'
230
- type: :development
231
- prerelease: false
232
- version_requirements: !ruby/object:Gem::Requirement
233
- requirements:
234
- - - ">="
235
- - !ruby/object:Gem::Version
236
- version: '0'
237
- - !ruby/object:Gem::Dependency
238
- name: rake
239
- requirement: !ruby/object:Gem::Requirement
240
- requirements:
241
- - - ">="
242
- - !ruby/object:Gem::Version
243
- version: '0'
244
- type: :development
245
- prerelease: false
246
- version_requirements: !ruby/object:Gem::Requirement
247
- requirements:
248
- - - ">="
249
- - !ruby/object:Gem::Version
250
- version: '0'
251
69
  description: DB Table synchronization between microservices based on Model's event
252
70
  system and RabbitMQ messaging
253
71
  email:
@@ -309,6 +127,7 @@ files:
309
127
  - lib/table_sync/utils/interface_checker.rb
310
128
  - lib/table_sync/utils/proc_array.rb
311
129
  - lib/table_sync/utils/proc_keywords_resolver.rb
130
+ - lib/table_sync/utils/required_validator.rb
312
131
  - lib/table_sync/version.rb
313
132
  - log/.keep
314
133
  - table_sync.gemspec
@@ -324,14 +143,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
324
143
  requirements:
325
144
  - - ">="
326
145
  - !ruby/object:Gem::Version
327
- version: 2.7.0
146
+ version: 3.0.0
328
147
  required_rubygems_version: !ruby/object:Gem::Requirement
329
148
  requirements:
330
149
  - - ">="
331
150
  - !ruby/object:Gem::Version
332
151
  version: '0'
333
152
  requirements: []
334
- rubygems_version: 3.4.6
153
+ rubygems_version: 3.5.3
335
154
  signing_key:
336
155
  specification_version: 4
337
156
  summary: DB Table synchronization between microservices based on Model's event system