deimos-ruby 1.16.4 → 1.16.5

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: 7412853b7b878c8bcfbfa130f21b5d2c3d46b4d741f1f6adad9edcb358843a4b
4
- data.tar.gz: 5672157db0da4ea4a67893d7a792737e858962a2011cd097fc4af23a9bea60f0
3
+ metadata.gz: 021fca59477fbfa890fa77ae867cd3a006b65e2c0235d1bb47ccdd1780e51d9c
4
+ data.tar.gz: 8330ba3d8f90567c7abbfd91298dd04d80f9507f702a0d4ac45300f68e5d224a
5
5
  SHA512:
6
- metadata.gz: 444d6e14343916242caaa612d1e1c731ce45423ef41dc5e2cf4d9a85e8d618851001d52cf30ef2c2db060b2631bcaa4daa921ddd66eed93636d5d09ac5ad47e2
7
- data.tar.gz: 253428dc65fc2d86108671a9e03dd85e9a9afa97681dd562efe2a6ec7d61317002a375705ccc7e0b267da31041a0d4c5b2fce960b7e73195dfdad651c5e77b09
6
+ metadata.gz: ab861eb37e8590664f47e0e11082ed5aac344a730c009c5261edcbdcbfcd00a39bc8e1f44bf2be5c05b1eb587ba15ad32e77edfd80ca0789da05049c91dd20e9
7
+ data.tar.gz: 851b9b844d11be5d90d3b4e652a648e7ce1e8e90e1ddd96f25a34d690cb89e2503302a80ad9cb891cbaa30949a0394e68337b34de86cf848a6815730d1548ca0
@@ -25,18 +25,18 @@ jobs:
25
25
  ruby-version: 2.7
26
26
  bundler-cache: true
27
27
 
28
+ - name: Bundle install
29
+ run: bundle install --with development
30
+
28
31
  - name: Rubocop
29
32
  run: bundle exec rubocop --format progress
30
33
 
31
34
  build:
32
35
  runs-on: ubuntu-latest
33
- env:
34
- BUNDLE_GEMFILE: ${{ github.workspace }}/.gemfiles/${{ matrix.gemfile }}.gemfile
35
36
  strategy:
36
37
  fail-fast: false
37
38
  matrix:
38
39
  ruby: [ '2.6', '2.7', '3.0', '3.1' ]
39
- gemfile: [ 'avro_turf-0', 'avro_turf-1' ]
40
40
 
41
41
  steps:
42
42
  - uses: actions/checkout@v2
data/.rubocop.yml CHANGED
@@ -1,7 +1,9 @@
1
+ inherit_from: .rubocop_todo.yml
2
+
1
3
  require: rubocop-rspec
2
4
 
3
5
  AllCops:
4
- TargetRubyVersion: 2.4
6
+ TargetRubyVersion: 2.5
5
7
  Exclude:
6
8
  - lib/deimos/monkey_patches/*.rb
7
9
  - vendor/**/*
@@ -39,8 +41,9 @@ Layout/EmptyLinesAroundBlockBody:
39
41
  Layout/LineLength:
40
42
  Max: 120
41
43
  Severity: refactor
42
- Exclude:
43
- - 'spec/**/*'
44
+ # TODO: uncomment the files below once rubocop is fixed
45
+ # Exclude:
46
+ # - 'spec/**/*'
44
47
 
45
48
  # foo = if expression
46
49
  # 'bar'
@@ -149,18 +152,20 @@ Style/CollectionMethods:
149
152
  Style/DateTime:
150
153
  AllowCoercion: true
151
154
 
152
- Style/Documentation:
153
- Exclude:
154
- - 'app/controllers/**/*'
155
- - 'app/helpers/**/*'
156
- - 'db/**/*'
155
+ # TODO: uncomment the lines below once rubocop is fixed
156
+ #Style/Documentation:
157
+ # Exclude:
158
+ # - 'app/controllers/**/*'
159
+ # - 'app/helpers/**/*'
160
+ # - 'db/**/*'
157
161
 
158
162
  # Force documentation for public methods and classes
159
163
  Style/DocumentationMethod:
160
164
  Enabled: true
161
- Exclude:
162
- - 'app/controllers/**/*'
163
- - 'db/**/*'
165
+ # TODO: uncomment the file below once rubocop is fixed
166
+ # Exclude:
167
+ # - 'app/controllers/**/*'
168
+ # - 'db/**/*'
164
169
 
165
170
  # Allow else with just nil in it
166
171
  Style/EmptyElse:
@@ -231,9 +236,10 @@ Style/MethodCallWithArgsParentheses:
231
236
  - before_destroy
232
237
  - after_destroy
233
238
  - queue_as
234
- Exclude:
235
- - 'bin/**/*'
236
- - 'Gemfile'
239
+ # TODO: uncomment the file below once rubocop is fixed
240
+ # Exclude:
241
+ # - 'bin/**/*'
242
+ # - 'Gemfile'
237
243
 
238
244
  # Do not allow "end.something"
239
245
  Style/MethodCalledOnDoEndBlock:
data/.rubocop_todo.yml ADDED
@@ -0,0 +1,364 @@
1
+ # This configuration was generated by
2
+ # `rubocop --auto-gen-config --auto-gen-only-exclude`
3
+ # on 2022-09-08 19:46:52 UTC using RuboCop version 0.90.0.
4
+ # The point is for the user to remove these configuration records
5
+ # one by one as the offenses are removed from the code base.
6
+ # Note that changes in the inspected code, or installation of new
7
+ # versions of RuboCop, may require this file to be generated again.
8
+
9
+ # Offense count: 1
10
+ # Configuration parameters: Include.
11
+ # Include: **/*.gemspec
12
+ Gemspec/RequiredRubyVersion:
13
+ Exclude:
14
+ - 'deimos-ruby.gemspec'
15
+
16
+ # Offense count: 4
17
+ # Cop supports --auto-correct.
18
+ Layout/EmptyLines:
19
+ Exclude:
20
+ - 'spec/schemas/my_namespace/generated.rb'
21
+ - 'spec/schemas/my_namespace/my_nested_schema.rb'
22
+ - 'spec/schemas/my_namespace/my_schema_with_circular_reference.rb'
23
+ - 'spec/schemas/my_namespace/my_schema_with_complex_type.rb'
24
+
25
+ # Offense count: 32
26
+ # Cop supports --auto-correct.
27
+ # Configuration parameters: EnforcedStyle.
28
+ # SupportedStyles: empty_lines, empty_lines_except_namespace, empty_lines_special, no_empty_lines, beginning_only, ending_only
29
+ Layout/EmptyLinesAroundClassBody:
30
+ Enabled: false
31
+
32
+ # Offense count: 1
33
+ # Cop supports --auto-correct.
34
+ Layout/EmptyLinesAroundMethodBody:
35
+ Exclude:
36
+ - 'lib/generators/deimos/schema_class_generator.rb'
37
+
38
+ # Offense count: 42
39
+ # Cop supports --auto-correct.
40
+ # Configuration parameters: EnforcedStyleAlignWith, Severity.
41
+ # SupportedStylesAlignWith: keyword, variable, start_of_line
42
+ Layout/EndAlignment:
43
+ Enabled: false
44
+
45
+ # Offense count: 4
46
+ # Cop supports --auto-correct.
47
+ # Configuration parameters: EnforcedStyle, IndentationWidth.
48
+ # SupportedStyles: special_inside_parentheses, consistent, align_braces
49
+ Layout/FirstHashElementIndentation:
50
+ Exclude:
51
+ - 'spec/producer_spec.rb'
52
+
53
+ # Offense count: 19
54
+ # Cop supports --auto-correct.
55
+ # Configuration parameters: AllowMultipleStyles, EnforcedHashRocketStyle, EnforcedColonStyle, EnforcedLastArgumentHashStyle.
56
+ # SupportedHashRocketStyles: key, separator, table
57
+ # SupportedColonStyles: key, separator, table
58
+ # SupportedLastArgumentHashStyles: always_inspect, always_ignore, ignore_implicit, ignore_explicit
59
+ Layout/HashAlignment:
60
+ Exclude:
61
+ - 'spec/consumer_spec.rb'
62
+ - 'spec/generators/schema_class/my_schema_with_circular_reference_spec.rb'
63
+
64
+ # Offense count: 21
65
+ # Cop supports --auto-correct.
66
+ # Configuration parameters: Width, IgnoredPatterns.
67
+ Layout/IndentationWidth:
68
+ Enabled: false
69
+
70
+ # Offense count: 9
71
+ # Cop supports --auto-correct.
72
+ # Configuration parameters: AllowForAlignment, EnforcedStyleForExponentOperator.
73
+ # SupportedStylesForExponentOperator: space, no_space
74
+ Layout/SpaceAroundOperators:
75
+ Exclude:
76
+ - 'spec/generators/schema_class/my_schema_with_circular_reference_spec.rb'
77
+ - 'spec/generators/schema_class_generator_spec.rb'
78
+ - 'spec/schemas/my_namespace/my_schema_with_complex_type.rb'
79
+
80
+ # Offense count: 1
81
+ # Cop supports --auto-correct.
82
+ # Configuration parameters: EnforcedStyle, EnforcedStyleForEmptyBraces, SpaceBeforeBlockParameters.
83
+ # SupportedStyles: space, no_space
84
+ # SupportedStylesForEmptyBraces: space, no_space
85
+ Layout/SpaceInsideBlockBraces:
86
+ Exclude:
87
+ - 'spec/generators/schema_class_generator_spec.rb'
88
+
89
+ # Offense count: 1
90
+ # Cop supports --auto-correct.
91
+ # Configuration parameters: EnforcedStyle, EnforcedStyleForEmptyBraces.
92
+ # SupportedStyles: space, no_space, compact
93
+ # SupportedStylesForEmptyBraces: space, no_space
94
+ Layout/SpaceInsideHashLiteralBraces:
95
+ Exclude:
96
+ - 'spec/active_record_producer_spec.rb'
97
+
98
+ # Offense count: 1
99
+ # Cop supports --auto-correct.
100
+ # Configuration parameters: EnforcedStyle.
101
+ # SupportedStyles: space, no_space
102
+ Layout/SpaceInsideParens:
103
+ Exclude:
104
+ - 'lib/deimos.rb'
105
+
106
+ # Offense count: 23
107
+ # Cop supports --auto-correct.
108
+ # Configuration parameters: AllowInHeredoc.
109
+ Layout/TrailingWhitespace:
110
+ Exclude:
111
+ - 'spec/schemas/my_namespace/generated.rb'
112
+ - 'spec/schemas/my_namespace/my_nested_schema.rb'
113
+ - 'spec/schemas/my_namespace/my_schema_with_circular_reference.rb'
114
+ - 'spec/schemas/my_namespace/my_schema_with_complex_type.rb'
115
+
116
+ # Offense count: 5
117
+ Lint/MissingSuper:
118
+ Exclude:
119
+ - 'lib/deimos/active_record_consumer.rb'
120
+ - 'lib/deimos/metrics/datadog.rb'
121
+ - 'lib/deimos/schema_class/enum.rb'
122
+ - 'lib/deimos/tracing/datadog.rb'
123
+ - 'lib/deimos/tracing/mock.rb'
124
+
125
+ # Offense count: 1
126
+ # Cop supports --auto-correct.
127
+ Lint/RedundantCopDisableDirective:
128
+ Exclude:
129
+ - 'spec/spec_helper.rb'
130
+
131
+ # Offense count: 3
132
+ # Cop supports --auto-correct.
133
+ # Configuration parameters: AllowUnusedKeywordArguments, IgnoreEmptyMethods, IgnoreNotImplementedMethods.
134
+ Lint/UnusedMethodArgument:
135
+ Exclude:
136
+ - 'lib/deimos/tracing/mock.rb'
137
+ - 'spec/schemas/my_namespace/my_schema_with_circular_reference.rb'
138
+
139
+ # Offense count: 1
140
+ Lint/UselessAssignment:
141
+ Exclude:
142
+ - 'spec/generators/schema_class_generator_spec.rb'
143
+
144
+ # Offense count: 19
145
+ # Configuration parameters: IgnoredMethods, Max.
146
+ Metrics/AbcSize:
147
+ Exclude:
148
+ - 'lib/deimos/active_record_consume/message_consumption.rb'
149
+ - 'lib/deimos/config/phobos_config.rb'
150
+ - 'lib/deimos/instrumentation.rb'
151
+ - 'lib/deimos/kafka_source.rb'
152
+ - 'lib/deimos/kafka_topic_info.rb'
153
+ - 'lib/deimos/producer.rb'
154
+ - 'lib/deimos/schema_backends/avro_schema_coercer.rb'
155
+ - 'lib/deimos/test_helpers.rb'
156
+ - 'lib/deimos/utils/db_poller.rb'
157
+ - 'lib/deimos/utils/db_producer.rb'
158
+ - 'lib/deimos/utils/inline_consumer.rb'
159
+ - 'lib/deimos/utils/schema_controller_mixin.rb'
160
+ - 'lib/generators/deimos/schema_class_generator.rb'
161
+
162
+ # Offense count: 1
163
+ # Configuration parameters: CountComments, Max, CountAsOne, ExcludedMethods.
164
+ Metrics/MethodLength:
165
+ Exclude:
166
+ - 'lib/deimos/config/phobos_config.rb'
167
+
168
+ # Offense count: 5
169
+ # Configuration parameters: CountComments, Max, CountAsOne.
170
+ Metrics/ModuleLength:
171
+ Exclude:
172
+ - 'lib/deimos/test_helpers.rb'
173
+ - 'spec/active_record_batch_consumer_spec.rb'
174
+ - 'spec/batch_consumer_spec.rb'
175
+ - 'spec/kafka_source_spec.rb'
176
+ - 'spec/producer_spec.rb'
177
+
178
+ # Offense count: 6
179
+ # Configuration parameters: IgnoredMethods, Max.
180
+ Metrics/PerceivedComplexity:
181
+ Exclude:
182
+ - 'lib/deimos/config/phobos_config.rb'
183
+ - 'lib/deimos/consume/batch_consumption.rb'
184
+ - 'lib/deimos/kafka_source.rb'
185
+ - 'lib/deimos/schema_backends/avro_schema_coercer.rb'
186
+ - 'lib/deimos/test_helpers.rb'
187
+
188
+ # Offense count: 12
189
+ # Configuration parameters: Prefixes.
190
+ # Prefixes: when, with, without
191
+ RSpec/ContextWording:
192
+ Exclude:
193
+ - 'spec/generators/schema_class_generator_spec.rb'
194
+
195
+ # Offense count: 4
196
+ # Configuration parameters: Max.
197
+ RSpec/ExampleLength:
198
+ Exclude:
199
+ - 'spec/config/configuration_spec.rb'
200
+ - 'spec/utils/db_producer_spec.rb'
201
+
202
+ # Offense count: 6
203
+ # Configuration parameters: Max.
204
+ RSpec/MultipleExpectations:
205
+ Exclude:
206
+ - 'spec/active_record_consumer_spec.rb'
207
+ - 'spec/config/configuration_spec.rb'
208
+ - 'spec/kafka_topic_info_spec.rb'
209
+ - 'spec/utils/db_poller_spec.rb'
210
+ - 'spec/utils/db_producer_spec.rb'
211
+
212
+ # Offense count: 1
213
+ Style/Documentation:
214
+ Exclude:
215
+ - 'spec/**/*'
216
+ - 'test/**/*'
217
+ - 'regenerate_test_schema_classes.rb'
218
+
219
+ # Offense count: 1
220
+ # Configuration parameters: RequireForNonPublicMethods.
221
+ Style/DocumentationMethod:
222
+ Exclude:
223
+ - 'spec/**/*'
224
+ - 'test/**/*'
225
+ - 'regenerate_test_schema_classes.rb'
226
+
227
+ # Offense count: 1
228
+ # Cop supports --auto-correct.
229
+ # Configuration parameters: EnforcedStyle.
230
+ # SupportedStyles: compact, expanded
231
+ Style/EmptyMethod:
232
+ Exclude:
233
+ - 'regenerate_test_schema_classes.rb'
234
+
235
+ # Offense count: 2
236
+ # Cop supports --auto-correct.
237
+ Style/ExplicitBlockArgument:
238
+ Exclude:
239
+ - 'lib/deimos/metrics/datadog.rb'
240
+ - 'lib/deimos/utils/deadlock_retry.rb'
241
+
242
+ # Offense count: 2
243
+ # Cop supports --auto-correct.
244
+ # Configuration parameters: EnforcedStyle.
245
+ # SupportedStyles: always, always_true, never
246
+ Style/FrozenStringLiteralComment:
247
+ Exclude:
248
+ - 'regenerate_test_schema_classes.rb'
249
+ - 'spec/generators/schema_class/my_schema_spec.rb'
250
+
251
+ # Offense count: 10
252
+ # Cop supports --auto-correct.
253
+ Style/GlobalStdStream:
254
+ Exclude:
255
+ - 'lib/deimos/config/configuration.rb'
256
+ - 'lib/deimos/config/phobos_config.rb'
257
+ - 'lib/deimos/metrics/mock.rb'
258
+ - 'lib/deimos/test_helpers.rb'
259
+ - 'lib/deimos/tracing/mock.rb'
260
+ - 'lib/deimos/utils/db_producer.rb'
261
+ - 'lib/tasks/deimos.rake'
262
+ - 'spec/rake_spec.rb'
263
+
264
+ # Offense count: 1
265
+ # Cop supports --auto-correct.
266
+ Style/HashEachMethods:
267
+ Exclude:
268
+ - 'lib/generators/deimos/schema_class_generator.rb'
269
+
270
+ # Offense count: 31
271
+ # Cop supports --auto-correct.
272
+ # Configuration parameters: IgnoreMacros, IgnoredMethods, IgnoredPatterns, IncludedMacros, AllowParenthesesInMultilineCall, AllowParenthesesInChaining, AllowParenthesesInCamelCaseMethod, EnforcedStyle.
273
+ # SupportedStyles: require_parentheses, omit_parentheses
274
+ Style/MethodCallWithArgsParentheses:
275
+ Exclude:
276
+ - 'lib/deimos/utils/db_poller.rb'
277
+ - 'lib/deimos/utils/inline_consumer.rb'
278
+ - 'spec/config/configuration_spec.rb'
279
+ - 'spec/deimos_spec.rb'
280
+ - 'spec/generators/schema_class_generator_spec.rb'
281
+
282
+ # Offense count: 1
283
+ Style/OptionalBooleanParameter:
284
+ Exclude:
285
+ - 'lib/deimos/test_helpers.rb'
286
+
287
+ # Offense count: 1
288
+ # Cop supports --auto-correct.
289
+ Style/RedundantAssignment:
290
+ Exclude:
291
+ - 'spec/schemas/my_namespace/my_schema_with_circular_reference.rb'
292
+
293
+ # Offense count: 2
294
+ # Cop supports --auto-correct.
295
+ Style/RedundantBegin:
296
+ Exclude:
297
+ - 'lib/deimos.rb'
298
+ - 'lib/deimos/utils/db_producer.rb'
299
+
300
+ # Offense count: 1
301
+ # Cop supports --auto-correct.
302
+ Style/SingleArgumentDig:
303
+ Exclude:
304
+ - 'lib/deimos/active_record_consume/batch_slicer.rb'
305
+
306
+ # Offense count: 1
307
+ # Cop supports --auto-correct.
308
+ # Configuration parameters: AllowIfMethodIsEmpty.
309
+ Style/SingleLineMethods:
310
+ Exclude:
311
+ - 'regenerate_test_schema_classes.rb'
312
+
313
+ # Offense count: 5
314
+ # Cop supports --auto-correct.
315
+ Style/StringConcatenation:
316
+ Exclude:
317
+ - 'spec/producer_spec.rb'
318
+ - 'spec/utils/schema_controller_mixin_spec.rb'
319
+
320
+ # Offense count: 10
321
+ # Cop supports --auto-correct.
322
+ # Configuration parameters: EnforcedStyle, ConsistentQuotesInMultiline.
323
+ # SupportedStyles: single_quotes, double_quotes
324
+ Style/StringLiterals:
325
+ Exclude:
326
+ - 'lib/generators/deimos/schema_class_generator.rb'
327
+ - 'lib/tasks/deimos.rake'
328
+ - 'regenerate_test_schema_classes.rb'
329
+ - 'spec/schemas/my_namespace/my_schema_with_complex_type.rb'
330
+ - 'spec/spec_helper.rb'
331
+
332
+ # Offense count: 1
333
+ # Cop supports --auto-correct.
334
+ # Configuration parameters: EnforcedStyle, AllowSafeAssignment.
335
+ # SupportedStyles: require_parentheses, require_no_parentheses, require_parentheses_when_complex
336
+ Style/TernaryParentheses:
337
+ Exclude:
338
+ - 'lib/deimos/config/phobos_config.rb'
339
+
340
+ # Offense count: 21
341
+ # Cop supports --auto-correct.
342
+ Style/TrailingBodyOnModule:
343
+ Enabled: false
344
+
345
+ # Offense count: 1
346
+ # Cop supports --auto-correct.
347
+ # Configuration parameters: EnforcedStyleForMultiline.
348
+ # SupportedStylesForMultiline: comma, consistent_comma, no_comma
349
+ Style/TrailingCommaInHashLiteral:
350
+ Exclude:
351
+ - 'spec/config/configuration_spec.rb'
352
+
353
+ # Offense count: 8
354
+ # Cop supports --auto-correct.
355
+ # Configuration parameters: AutoCorrect, Max, AllowHeredoc, AllowURI, URISchemes, IgnoreCopDirectives, IgnoredPatterns.
356
+ # URISchemes: http, https
357
+ Layout/LineLength:
358
+ Exclude:
359
+ - 'lib/deimos/producer.rb'
360
+ - 'lib/deimos/utils/db_poller.rb'
361
+ - 'lib/deimos/utils/db_producer.rb'
362
+ - 'spec/active_record_batch_consumer_spec.rb'
363
+ - 'spec/generators/schema_class/my_schema_with_circular_reference_spec.rb'
364
+ - 'spec/generators/schema_class/my_schema_with_complex_types_spec.rb'
data/.ruby-version CHANGED
@@ -1 +1,2 @@
1
- 2.5.3
1
+ 3.1.0
2
+
data/CHANGELOG.md CHANGED
@@ -7,6 +7,10 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
7
7
 
8
8
  ## UNRELEASED
9
9
 
10
+ # 1.16.5 - 2022-09-30
11
+
12
+ - Fix the linting step in the CI
13
+
10
14
  # 1.16.4 - 2022-09-09
11
15
 
12
16
  - Now generates RBS types.
data/README.md CHANGED
@@ -1200,13 +1200,14 @@ Bug reports and pull requests are welcome on GitHub at https://github.com/flipp-
1200
1200
 
1201
1201
  You can/should re-generate RBS types when methods or classes change by running the following:
1202
1202
 
1203
- rbs collection install # if you haven't done it recently
1203
+ rbs collection install # if you haven't done it
1204
+ rbs collection update
1204
1205
  bundle exec sord --hide-private --no-sord-comments sig/defs.rbs --tags 'override:Override'
1205
1206
 
1206
1207
  ### Linting
1207
1208
 
1208
1209
  Deimos uses Rubocop to lint the code. Please run Rubocop on your code
1209
- before submitting a PR.
1210
+ before submitting a PR. The GitHub CI will also run rubocop on your pull request.
1210
1211
 
1211
1212
  ---
1212
1213
  <p align="center">
data/Steepfile ADDED
@@ -0,0 +1,6 @@
1
+ target :app do
2
+ check "lib"
3
+ signature "sig"
4
+
5
+ library "set", "pathname"
6
+ end
data/deimos-ruby.gemspec CHANGED
@@ -18,11 +18,11 @@ Gem::Specification.new do |spec|
18
18
  spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
19
19
  spec.require_paths = ['lib']
20
20
 
21
- spec.add_runtime_dependency('avro_turf', '>= 0.11', '< 2')
21
+ spec.add_runtime_dependency('avro_turf', '>= 1.4', '< 2')
22
+ spec.add_runtime_dependency('fig_tree', '~> 0.0.2')
22
23
  spec.add_runtime_dependency('phobos', '>= 1.9', '< 3.0')
23
24
  spec.add_runtime_dependency('ruby-kafka', '< 2')
24
25
  spec.add_runtime_dependency('sigurd', '>= 0.1.0', '< 1.0')
25
- spec.add_runtime_dependency('fig_tree', '~> 0.0.2')
26
26
 
27
27
  spec.add_development_dependency('activerecord-import')
28
28
  spec.add_development_dependency('avro', '~> 1.9')
@@ -43,4 +43,5 @@ Gem::Specification.new do |spec|
43
43
  spec.add_development_dependency('rubocop', '0.89.0')
44
44
  spec.add_development_dependency('rubocop-rspec', '1.42.0')
45
45
  spec.add_development_dependency('sqlite3', '~> 1.3')
46
+ spec.add_development_dependency('steep', '~> 1.0')
46
47
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Deimos
4
- VERSION = '1.16.4'
4
+ VERSION = '1.16.5'
5
5
  end
@@ -184,7 +184,7 @@ module Deimos
184
184
  def generate_from_schema_files(found_schemas)
185
185
  schema_store = AvroTurf::MutableSchemaStore.new(path: Deimos.config.schema.path)
186
186
  schema_store.load_schemas!
187
- schema_store.schemas.values.each do |schema|
187
+ schema_store.schemas.values.sort_by { |s| "#{s.namespace}#{s.name}" }.each do |schema|
188
188
  name = "#{schema.namespace}.#{schema.name}"
189
189
  next if found_schemas.include?(name)
190
190
 
@@ -11,7 +11,7 @@ gems:
11
11
  source:
12
12
  type: git
13
13
  name: ruby/gem_rbs_collection
14
- revision: 4b908cef352d601d80978a9fe3e2a09210e7fc00
14
+ revision: 8e2fd75fc0e2bcbda9023e8c936fe5ba654b1436
15
15
  remote: https://github.com/ruby/gem_rbs_collection.git
16
16
  repo_dir: gems
17
17
  - name: actionview
@@ -19,7 +19,7 @@ gems:
19
19
  source:
20
20
  type: git
21
21
  name: ruby/gem_rbs_collection
22
- revision: 4b908cef352d601d80978a9fe3e2a09210e7fc00
22
+ revision: 8e2fd75fc0e2bcbda9023e8c936fe5ba654b1436
23
23
  remote: https://github.com/ruby/gem_rbs_collection.git
24
24
  repo_dir: gems
25
25
  - name: activejob
@@ -27,7 +27,7 @@ gems:
27
27
  source:
28
28
  type: git
29
29
  name: ruby/gem_rbs_collection
30
- revision: 4b908cef352d601d80978a9fe3e2a09210e7fc00
30
+ revision: 8e2fd75fc0e2bcbda9023e8c936fe5ba654b1436
31
31
  remote: https://github.com/ruby/gem_rbs_collection.git
32
32
  repo_dir: gems
33
33
  - name: activemodel
@@ -35,7 +35,7 @@ gems:
35
35
  source:
36
36
  type: git
37
37
  name: ruby/gem_rbs_collection
38
- revision: 4b908cef352d601d80978a9fe3e2a09210e7fc00
38
+ revision: 8e2fd75fc0e2bcbda9023e8c936fe5ba654b1436
39
39
  remote: https://github.com/ruby/gem_rbs_collection.git
40
40
  repo_dir: gems
41
41
  - name: activerecord
@@ -43,7 +43,7 @@ gems:
43
43
  source:
44
44
  type: git
45
45
  name: ruby/gem_rbs_collection
46
- revision: 4b908cef352d601d80978a9fe3e2a09210e7fc00
46
+ revision: 8e2fd75fc0e2bcbda9023e8c936fe5ba654b1436
47
47
  remote: https://github.com/ruby/gem_rbs_collection.git
48
48
  repo_dir: gems
49
49
  - name: activestorage
@@ -51,7 +51,7 @@ gems:
51
51
  source:
52
52
  type: git
53
53
  name: ruby/gem_rbs_collection
54
- revision: 4b908cef352d601d80978a9fe3e2a09210e7fc00
54
+ revision: 8e2fd75fc0e2bcbda9023e8c936fe5ba654b1436
55
55
  remote: https://github.com/ruby/gem_rbs_collection.git
56
56
  repo_dir: gems
57
57
  - name: activesupport
@@ -59,7 +59,7 @@ gems:
59
59
  source:
60
60
  type: git
61
61
  name: ruby/gem_rbs_collection
62
- revision: 4b908cef352d601d80978a9fe3e2a09210e7fc00
62
+ revision: 8e2fd75fc0e2bcbda9023e8c936fe5ba654b1436
63
63
  remote: https://github.com/ruby/gem_rbs_collection.git
64
64
  repo_dir: gems
65
65
  - name: ast
@@ -67,11 +67,11 @@ gems:
67
67
  source:
68
68
  type: git
69
69
  name: ruby/gem_rbs_collection
70
- revision: 4b908cef352d601d80978a9fe3e2a09210e7fc00
70
+ revision: 8e2fd75fc0e2bcbda9023e8c936fe5ba654b1436
71
71
  remote: https://github.com/ruby/gem_rbs_collection.git
72
72
  repo_dir: gems
73
73
  - name: deimos-ruby
74
- version: 1.16.1
74
+ version: 1.16.4
75
75
  source:
76
76
  type: rubygems
77
77
  - name: i18n
@@ -79,7 +79,7 @@ gems:
79
79
  source:
80
80
  type: git
81
81
  name: ruby/gem_rbs_collection
82
- revision: 4b908cef352d601d80978a9fe3e2a09210e7fc00
82
+ revision: 8e2fd75fc0e2bcbda9023e8c936fe5ba654b1436
83
83
  remote: https://github.com/ruby/gem_rbs_collection.git
84
84
  repo_dir: gems
85
85
  - name: listen
@@ -87,7 +87,7 @@ gems:
87
87
  source:
88
88
  type: git
89
89
  name: ruby/gem_rbs_collection
90
- revision: 4b908cef352d601d80978a9fe3e2a09210e7fc00
90
+ revision: 8e2fd75fc0e2bcbda9023e8c936fe5ba654b1436
91
91
  remote: https://github.com/ruby/gem_rbs_collection.git
92
92
  repo_dir: gems
93
93
  - name: minitest
@@ -99,7 +99,7 @@ gems:
99
99
  source:
100
100
  type: git
101
101
  name: ruby/gem_rbs_collection
102
- revision: 4b908cef352d601d80978a9fe3e2a09210e7fc00
102
+ revision: 8e2fd75fc0e2bcbda9023e8c936fe5ba654b1436
103
103
  remote: https://github.com/ruby/gem_rbs_collection.git
104
104
  repo_dir: gems
105
105
  - name: parallel
@@ -107,7 +107,7 @@ gems:
107
107
  source:
108
108
  type: git
109
109
  name: ruby/gem_rbs_collection
110
- revision: 4b908cef352d601d80978a9fe3e2a09210e7fc00
110
+ revision: 8e2fd75fc0e2bcbda9023e8c936fe5ba654b1436
111
111
  remote: https://github.com/ruby/gem_rbs_collection.git
112
112
  repo_dir: gems
113
113
  - name: phobos
@@ -119,7 +119,7 @@ gems:
119
119
  source:
120
120
  type: git
121
121
  name: ruby/gem_rbs_collection
122
- revision: 4b908cef352d601d80978a9fe3e2a09210e7fc00
122
+ revision: 8e2fd75fc0e2bcbda9023e8c936fe5ba654b1436
123
123
  remote: https://github.com/ruby/gem_rbs_collection.git
124
124
  repo_dir: gems
125
125
  - name: railties
@@ -127,7 +127,7 @@ gems:
127
127
  source:
128
128
  type: git
129
129
  name: ruby/gem_rbs_collection
130
- revision: 4b908cef352d601d80978a9fe3e2a09210e7fc00
130
+ revision: 8e2fd75fc0e2bcbda9023e8c936fe5ba654b1436
131
131
  remote: https://github.com/ruby/gem_rbs_collection.git
132
132
  repo_dir: gems
133
133
  - name: rainbow
@@ -135,7 +135,7 @@ gems:
135
135
  source:
136
136
  type: git
137
137
  name: ruby/gem_rbs_collection
138
- revision: 4b908cef352d601d80978a9fe3e2a09210e7fc00
138
+ revision: 8e2fd75fc0e2bcbda9023e8c936fe5ba654b1436
139
139
  remote: https://github.com/ruby/gem_rbs_collection.git
140
140
  repo_dir: gems
141
141
  - name: tempfile
data/sig/defs.rbs CHANGED
@@ -2,7 +2,7 @@
2
2
  module Deimos
3
3
  include Deimos::Instrumentation
4
4
  include FigTree
5
- VERSION: String
5
+ VERSION: untyped
6
6
 
7
7
  def self.schema_backend_class: () -> singleton(Deimos::SchemaBackends::Base)
8
8
 
@@ -1144,6 +1144,9 @@ module Deimos
1144
1144
  def schema_fields: () -> ::Array[String]
1145
1145
 
1146
1146
  def self.initialize_from_value: (Object value) -> SchemaClass::Record
1147
+
1148
+ # Returns the value of attribute tombstone_key.
1149
+ attr_accessor tombstone_key: untyped
1147
1150
  end
1148
1151
  end
1149
1152
 
@@ -1589,6 +1592,11 @@ module Deimos
1589
1592
  ?column_name: Symbol,
1590
1593
  min_id: Numeric
1591
1594
  ) -> ActiveRecord::Relation
1595
+
1596
+ # Post process records after publishing
1597
+ #
1598
+ # _@param_ `records`
1599
+ def self.post_process: (::Array[ActiveRecord::Base] _records) -> untyped
1592
1600
  end
1593
1601
 
1594
1602
  module Consume
data/sig/fig_tree.rbs CHANGED
@@ -1,2 +1,2 @@
1
- class FigTree
1
+ module FigTree
2
2
  end
@@ -32,8 +32,8 @@ module ConsumerTest
32
32
 
33
33
  it 'should consume a message' do
34
34
  test_consume_message(MyConsumer,
35
- {'test_id' => 'foo',
36
- 'some_int' => 123}) do |payload, _metadata|
35
+ { 'test_id' => 'foo',
36
+ 'some_int' => 123 }) do |payload, _metadata|
37
37
  expect(payload['test_id']).to eq('foo')
38
38
  expect(payload['some_int']).to eq(123)
39
39
  end
@@ -64,15 +64,15 @@ module ConsumerTest
64
64
 
65
65
  it 'should consume a message on a topic' do
66
66
  test_consume_message('my_consume_topic',
67
- {'test_id' => 'foo',
68
- 'some_int' => 123}) do |payload, _metadata|
67
+ { 'test_id' => 'foo',
68
+ 'some_int' => 123 }) do |payload, _metadata|
69
69
  expect(payload['test_id']).to eq('foo')
70
70
  expect(payload['some_int']).to eq(123)
71
71
  end
72
72
  end
73
73
 
74
74
  it 'should fail on invalid message' do
75
- test_consume_invalid_message(MyConsumer, {'invalid' => 'key'})
75
+ test_consume_invalid_message(MyConsumer, { 'invalid' => 'key' })
76
76
  end
77
77
 
78
78
  it 'should fail if reraise is false but fatal_error is true' do
@@ -85,14 +85,14 @@ module ConsumerTest
85
85
  config.consumers.fatal_error = proc { true }
86
86
  config.consumers.reraise_errors = false
87
87
  end
88
- test_consume_invalid_message(MyConsumer, {'invalid' => 'key'})
88
+ test_consume_invalid_message(MyConsumer, { 'invalid' => 'key' })
89
89
  end
90
90
 
91
91
  it 'should fail on message with extra fields' do
92
92
  test_consume_invalid_message(MyConsumer,
93
- {'test_id' => 'foo',
93
+ { 'test_id' => 'foo',
94
94
  'some_int' => 123,
95
- 'extra_field' => 'field name'})
95
+ 'extra_field' => 'field name' })
96
96
  end
97
97
 
98
98
  it 'should not fail when before_consume fails without reraising errors' do
@@ -189,10 +189,10 @@ module ConsumerTest
189
189
  it 'should consume a message' do
190
190
  expect(Deimos.config.metrics).to receive(:histogram).twice
191
191
  test_consume_message('my_consume_topic',
192
- {'test_id' => 'foo',
192
+ { 'test_id' => 'foo',
193
193
  'some_int' => 123,
194
194
  'updated_at' => Time.now.to_i,
195
- 'timestamp' => 2.minutes.ago.to_s}) do |payload, _metadata|
195
+ 'timestamp' => 2.minutes.ago.to_s }) do |payload, _metadata|
196
196
  expect(payload['test_id']).to eq('foo')
197
197
  end
198
198
  end
@@ -200,17 +200,17 @@ module ConsumerTest
200
200
  it 'should fail nicely when timestamp wrong format' do
201
201
  expect(Deimos.config.metrics).to receive(:histogram).twice
202
202
  test_consume_message('my_consume_topic',
203
- {'test_id' => 'foo',
203
+ { 'test_id' => 'foo',
204
204
  'some_int' => 123,
205
205
  'updated_at' => Time.now.to_i,
206
- 'timestamp' => 'dffdf'}) do |payload, _metadata|
206
+ 'timestamp' => 'dffdf' }) do |payload, _metadata|
207
207
  expect(payload['test_id']).to eq('foo')
208
208
  end
209
209
  test_consume_message('my_consume_topic',
210
- {'test_id' => 'foo',
210
+ { 'test_id' => 'foo',
211
211
  'some_int' => 123,
212
212
  'updated_at' => Time.now.to_i,
213
- 'timestamp' => ''}) do |payload, _metadata|
213
+ 'timestamp' => '' }) do |payload, _metadata|
214
214
  expect(payload['test_id']).to eq('foo')
215
215
  end
216
216
  end
@@ -2,15 +2,15 @@ RSpec.describe Schemas::MyNamespace::MySchema do
2
2
  let(:key) { Schemas::MyNamespace::MySchemaKey.new(test_id: 123) }
3
3
 
4
4
  it 'should produce a tombstone with a hash' do
5
- result = described_class.tombstone({test_id: 123})
5
+ result = described_class.tombstone({ test_id: 123 })
6
6
  expect(result.payload_key).to eq(key)
7
- expect(result.to_h).to eq({ payload_key: { 'test_id' => 123}})
7
+ expect(result.to_h).to eq({ payload_key: { 'test_id' => 123 } })
8
8
  end
9
9
 
10
10
  it 'should work with a record' do
11
11
  key = Schemas::MyNamespace::MySchemaKey.new(test_id: 123)
12
12
  result = described_class.tombstone(key)
13
13
  expect(result.payload_key).to eq(key)
14
- expect(result.to_h).to eq({ payload_key: { 'test_id' => 123}})
14
+ expect(result.to_h).to eq({ payload_key: { 'test_id' => 123 } })
15
15
  end
16
16
  end
@@ -55,7 +55,7 @@ RSpec.describe Schemas::MyNamespace::MySchemaWithComplexType do
55
55
  it 'should return a tombstone' do
56
56
  record = described_class.tombstone('foo')
57
57
  expect(record.tombstone_key).to eq('foo')
58
- expect(record.to_h).to eq({payload_key: 'foo'})
58
+ expect(record.to_h).to eq({ payload_key: 'foo' })
59
59
  end
60
60
  end
61
61
 
@@ -79,7 +79,7 @@ module ProducerTest
79
79
  expect(event.payload[:payloads]).to eq([{ 'invalid' => 'key' }])
80
80
  end
81
81
  expect(MyProducer.encoder).to receive(:validate).and_raise('OH NOES')
82
- expect { MyProducer.publish({'invalid' => 'key', :payload_key => 'key'}) }.
82
+ expect { MyProducer.publish({ 'invalid' => 'key', :payload_key => 'key' }) }.
83
83
  to raise_error('OH NOES')
84
84
  Deimos.unsubscribe(subscriber)
85
85
  end
@@ -9,7 +9,7 @@ module Schemas; module MyNamespace
9
9
  ### Secondary Schema Classes ###
10
10
  # Autogenerated Schema for Record at com.my-namespace.ARecord
11
11
  class ARecord < Deimos::SchemaClass::Record
12
-
12
+
13
13
  ### Attribute Accessors ###
14
14
  # @return [String]
15
15
  attr_accessor :a_record_field
@@ -150,8 +150,8 @@ module Schemas; module MyNamespace
150
150
  test_string_array: ["test"],
151
151
  test_int_array: [123],
152
152
  test_optional_int: 123,
153
- some_integer_map: {"abc"=>123},
154
- some_record: {"a_record_field"=>"Test String"},
153
+ some_integer_map: { "abc"=>123 },
154
+ some_record: { "a_record_field"=>"Test String" },
155
155
  some_optional_record: nil,
156
156
  some_record_array: nil,
157
157
  some_record_map: nil,
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: deimos-ruby
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.16.4
4
+ version: 1.16.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Daniel Orner
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-09-09 00:00:00.000000000 Z
11
+ date: 2022-09-30 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: avro_turf
@@ -16,7 +16,7 @@ dependencies:
16
16
  requirements:
17
17
  - - ">="
18
18
  - !ruby/object:Gem::Version
19
- version: '0.11'
19
+ version: '1.4'
20
20
  - - "<"
21
21
  - !ruby/object:Gem::Version
22
22
  version: '2'
@@ -26,10 +26,24 @@ dependencies:
26
26
  requirements:
27
27
  - - ">="
28
28
  - !ruby/object:Gem::Version
29
- version: '0.11'
29
+ version: '1.4'
30
30
  - - "<"
31
31
  - !ruby/object:Gem::Version
32
32
  version: '2'
33
+ - !ruby/object:Gem::Dependency
34
+ name: fig_tree
35
+ requirement: !ruby/object:Gem::Requirement
36
+ requirements:
37
+ - - "~>"
38
+ - !ruby/object:Gem::Version
39
+ version: 0.0.2
40
+ type: :runtime
41
+ prerelease: false
42
+ version_requirements: !ruby/object:Gem::Requirement
43
+ requirements:
44
+ - - "~>"
45
+ - !ruby/object:Gem::Version
46
+ version: 0.0.2
33
47
  - !ruby/object:Gem::Dependency
34
48
  name: phobos
35
49
  requirement: !ruby/object:Gem::Requirement
@@ -84,20 +98,6 @@ dependencies:
84
98
  - - "<"
85
99
  - !ruby/object:Gem::Version
86
100
  version: '1.0'
87
- - !ruby/object:Gem::Dependency
88
- name: fig_tree
89
- requirement: !ruby/object:Gem::Requirement
90
- requirements:
91
- - - "~>"
92
- - !ruby/object:Gem::Version
93
- version: 0.0.2
94
- type: :runtime
95
- prerelease: false
96
- version_requirements: !ruby/object:Gem::Requirement
97
- requirements:
98
- - - "~>"
99
- - !ruby/object:Gem::Version
100
- version: 0.0.2
101
101
  - !ruby/object:Gem::Dependency
102
102
  name: activerecord-import
103
103
  requirement: !ruby/object:Gem::Requirement
@@ -364,6 +364,20 @@ dependencies:
364
364
  - - "~>"
365
365
  - !ruby/object:Gem::Version
366
366
  version: '1.3'
367
+ - !ruby/object:Gem::Dependency
368
+ name: steep
369
+ requirement: !ruby/object:Gem::Requirement
370
+ requirements:
371
+ - - "~>"
372
+ - !ruby/object:Gem::Version
373
+ version: '1.0'
374
+ type: :development
375
+ prerelease: false
376
+ version_requirements: !ruby/object:Gem::Requirement
377
+ requirements:
378
+ - - "~>"
379
+ - !ruby/object:Gem::Version
380
+ version: '1.0'
367
381
  description:
368
382
  email:
369
383
  - daniel.orner@wishabi.com
@@ -374,14 +388,12 @@ extensions: []
374
388
  extra_rdoc_files: []
375
389
  files:
376
390
  - ".circleci/config.yml"
377
- - ".gemfiles/avro_turf-0.gemfile"
378
- - ".gemfiles/avro_turf-1.gemfile"
379
391
  - ".github/workflows/ci.yml"
380
392
  - ".gitignore"
381
393
  - ".gitmodules"
382
394
  - ".rspec"
383
395
  - ".rubocop.yml"
384
- - ".ruby-gemset"
396
+ - ".rubocop_todo.yml"
385
397
  - ".ruby-version"
386
398
  - CHANGELOG.md
387
399
  - CODE_OF_CONDUCT.md
@@ -391,6 +403,7 @@ files:
391
403
  - LICENSE.md
392
404
  - README.md
393
405
  - Rakefile
406
+ - Steepfile
394
407
  - bin/console
395
408
  - bin/deimos
396
409
  - deimos-ruby.gemspec
@@ -1,3 +0,0 @@
1
- eval_gemfile '../Gemfile'
2
-
3
- gem 'avro_turf', '~> 0.11'
@@ -1,3 +0,0 @@
1
- eval_gemfile '../Gemfile'
2
-
3
- gem 'avro_turf', '~> 1.0'
data/.ruby-gemset DELETED
@@ -1 +0,0 @@
1
- deimos