deimos-ruby 1.16.4 → 1.16.5

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