deimos-ruby 2.2.0 → 2.2.1

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.
Files changed (90) hide show
  1. checksums.yaml +4 -4
  2. data/.rubocop.yml +33 -30
  3. data/CHANGELOG.md +6 -0
  4. data/Gemfile +0 -6
  5. data/deimos-ruby.gemspec +15 -11
  6. data/karafka.rb +7 -4
  7. data/lib/deimos/active_record_consume/batch_consumption.rb +7 -7
  8. data/lib/deimos/active_record_consume/batch_record.rb +2 -2
  9. data/lib/deimos/active_record_consume/message_consumption.rb +6 -5
  10. data/lib/deimos/active_record_consume/schema_model_converter.rb +2 -2
  11. data/lib/deimos/active_record_consumer.rb +1 -0
  12. data/lib/deimos/active_record_producer.rb +4 -2
  13. data/lib/deimos/backends/base.rb +1 -3
  14. data/lib/deimos/backends/outbox.rb +1 -1
  15. data/lib/deimos/config/configuration.rb +88 -75
  16. data/lib/deimos/consume/batch_consumption.rb +5 -5
  17. data/lib/deimos/consume/message_consumption.rb +3 -3
  18. data/lib/deimos/ext/consumer_route.rb +3 -3
  19. data/lib/deimos/ext/producer_metrics_listener.rb +2 -2
  20. data/lib/deimos/ext/producer_middleware.rb +19 -15
  21. data/lib/deimos/ext/producer_route.rb +3 -1
  22. data/lib/deimos/ext/routing_defaults.rb +9 -7
  23. data/lib/deimos/ext/schema_route.rb +22 -15
  24. data/lib/deimos/kafka_message.rb +1 -1
  25. data/lib/deimos/kafka_source.rb +36 -31
  26. data/lib/deimos/kafka_topic_info.rb +1 -1
  27. data/lib/deimos/logging.rb +20 -19
  28. data/lib/deimos/message.rb +1 -1
  29. data/lib/deimos/metrics/minimal_datadog_listener.rb +19 -6
  30. data/lib/deimos/metrics/provider.rb +4 -4
  31. data/lib/deimos/producer.rb +3 -1
  32. data/lib/deimos/railtie.rb +1 -1
  33. data/lib/deimos/schema_backends/avro_base.rb +1 -1
  34. data/lib/deimos/schema_backends/avro_schema_coercer.rb +46 -27
  35. data/lib/deimos/schema_backends/avro_schema_registry.rb +8 -8
  36. data/lib/deimos/schema_backends/base.rb +9 -9
  37. data/lib/deimos/schema_backends/plain.rb +1 -1
  38. data/lib/deimos/schema_backends/proto_base.rb +7 -5
  39. data/lib/deimos/schema_backends/proto_local.rb +0 -2
  40. data/lib/deimos/schema_backends/proto_schema_registry.rb +0 -2
  41. data/lib/deimos/schema_class/base.rb +1 -1
  42. data/lib/deimos/schema_class/record.rb +3 -3
  43. data/lib/deimos/test_helpers.rb +31 -26
  44. data/lib/deimos/tracing/provider.rb +5 -5
  45. data/lib/deimos/transcoder.rb +6 -2
  46. data/lib/deimos/utils/db_poller/base.rb +3 -3
  47. data/lib/deimos/utils/deadlock_retry.rb +2 -2
  48. data/lib/deimos/utils/outbox_producer.rb +14 -14
  49. data/lib/deimos/version.rb +1 -1
  50. data/lib/deimos.rb +4 -4
  51. data/lib/generators/deimos/active_record_generator.rb +2 -1
  52. data/lib/generators/deimos/db_poller_generator.rb +1 -0
  53. data/lib/generators/deimos/outbox_backend_generator.rb +1 -0
  54. data/lib/generators/deimos/schema_class_generator.rb +3 -2
  55. data/lib/generators/deimos/v2_generator.rb +184 -155
  56. data/spec/active_record_batch_consumer_association_spec.rb +6 -2
  57. data/spec/active_record_batch_consumer_spec.rb +83 -106
  58. data/spec/active_record_consume/batch_consumption_spec.rb +27 -28
  59. data/spec/active_record_consume/batch_slicer_spec.rb +4 -12
  60. data/spec/active_record_consume/mass_updater_spec.rb +42 -46
  61. data/spec/active_record_consume/schema_model_converter_spec.rb +1 -1
  62. data/spec/active_record_consumer_spec.rb +7 -5
  63. data/spec/active_record_producer_spec.rb +83 -73
  64. data/spec/backends/outbox_spec.rb +1 -1
  65. data/spec/batch_consumer_spec.rb +20 -20
  66. data/spec/consumer_spec.rb +23 -12
  67. data/spec/gen/sample/v1/sample_pb.rb +3 -3
  68. data/spec/generators/active_record_generator_spec.rb +4 -4
  69. data/spec/generators/schema_class/my_schema_with_circular_reference_spec.rb +2 -1
  70. data/spec/generators/schema_class/my_schema_with_complex_types_spec.rb +9 -2
  71. data/spec/generators/schema_class_generator_spec.rb +5 -5
  72. data/spec/kafka_source_spec.rb +13 -6
  73. data/spec/kafka_topic_info_spec.rb +7 -7
  74. data/spec/karafka/karafka.rb +6 -5
  75. data/spec/karafka_config/karafka_spec.rb +22 -19
  76. data/spec/logging_spec.rb +2 -0
  77. data/spec/producer_spec.rb +25 -20
  78. data/spec/schema_backends/avro_base_shared.rb +8 -8
  79. data/spec/schema_backends/avro_local_spec.rb +5 -6
  80. data/spec/schema_backends/avro_schema_registry_spec.rb +5 -6
  81. data/spec/schema_backends/proto_schema_registry_spec.rb +9 -12
  82. data/spec/schemas/my_namespace/generated.rb +1 -2
  83. data/spec/schemas/my_namespace/my_schema_with_complex_type.rb +5 -8
  84. data/spec/schemas/my_namespace/my_schema_with_union_type.rb +22 -23
  85. data/spec/spec_helper.rb +13 -17
  86. data/spec/utils/db_poller_spec.rb +5 -5
  87. data/spec/utils/deadlock_retry_spec.rb +1 -4
  88. data/spec/utils/outbox_producer_spec.rb +36 -24
  89. metadata +68 -161
  90. data/.ruby-version +0 -1
data/spec/spec_helper.rb CHANGED
@@ -16,8 +16,6 @@ require 'handlers/my_consumer'
16
16
  require 'rspec/rails'
17
17
  require 'rspec/snapshot'
18
18
  require 'karafka/testing/rspec/helpers'
19
- require "trilogy_adapter/connection"
20
- ActiveRecord::Base.public_send :extend, TrilogyAdapter::Connection
21
19
  Dir['./spec/schemas/**/*.rb'].sort.each { |f| require f }
22
20
 
23
21
  # Constants used for consumer specs
@@ -31,18 +29,17 @@ end
31
29
  DeimosApp.initialize!
32
30
 
33
31
  module Helpers
34
-
35
32
  def set_karafka_config(method, val)
36
33
  Deimos.karafka_configs.each { |c| c.send(method.to_sym, val) }
37
34
  end
38
35
 
39
- def register_consumer(klass, schema, namespace='com.my-namespace', key_config:{none: true}, configs: {})
36
+ def register_consumer(klass, schema, namespace='com.my-namespace', key_config: { none: true }, configs: {})
40
37
  Karafka::App.routes.redraw do
41
- topic 'my-topic' do
42
- consumer klass
43
- schema schema
44
- namespace namespace
45
- key_config key_config
38
+ topic('my-topic') do
39
+ consumer(klass)
40
+ schema(schema)
41
+ namespace(namespace)
42
+ key_config(key_config)
46
43
  configs.each do |k, v|
47
44
  public_send(k, v)
48
45
  end
@@ -99,7 +96,7 @@ module DbConfigs
99
96
  # @param topic [String]
100
97
  # @param key [String]
101
98
  def build_message(payload, topic, key)
102
- { payload: payload, topic: topic, key: key}
99
+ { payload: payload, topic: topic, key: key }
103
100
  end
104
101
 
105
102
  DB_OPTIONS = [
@@ -201,7 +198,7 @@ RSpec.configure do |config|
201
198
 
202
199
  config.before(:all) do
203
200
  Time.zone = 'Eastern Time (US & Canada)'
204
- ActiveRecord::Base.logger = Logger.new('/dev/null')
201
+ ActiveRecord::Base.logger = Logger.new(File::NULL)
205
202
  ActiveRecord::Base.establish_connection(
206
203
  'adapter' => 'sqlite3',
207
204
  'database' => 'test.sqlite3'
@@ -229,7 +226,7 @@ RSpec.configure do |config|
229
226
  deimos_config.schema.nest_child_schemas = true
230
227
  deimos_config.schema.path = File.join(File.expand_path(__dir__), 'schemas')
231
228
  deimos_config.schema.registry_url = ENV['SCHEMA_REGISTRY'] || 'http://localhost:8081'
232
- deimos_config.logger = Logger.new('/dev/null')
229
+ deimos_config.logger = Logger.new(File::NULL)
233
230
  deimos_config.logger.level = Logger::INFO
234
231
  deimos_config.schema.backend = :avro_validation
235
232
  deimos_config.schema.generated_class_path = 'spec/schemas'
@@ -263,7 +260,7 @@ RSpec.shared_context('with widgets') do
263
260
  end
264
261
 
265
262
  # :nodoc:
266
- class Widget < ActiveRecord::Base
263
+ class Widget < ActiveRecord::Base # rubocop:disable Lint/ConstantDefinitionInBlock
267
264
  # @return [String]
268
265
  def generated_id
269
266
  'generated_id'
@@ -287,7 +284,7 @@ RSpec.shared_context('with widget_with_union_types') do
287
284
  end
288
285
 
289
286
  # :nodoc:
290
- class WidgetWithUnionType < ActiveRecord::Base
287
+ class WidgetWithUnionType < ActiveRecord::Base # rubocop:disable Lint/ConstantDefinitionInBlock
291
288
  # @return [String]
292
289
  def generated_id
293
290
  'generated_id'
@@ -300,7 +297,6 @@ RSpec.shared_context('with widget_with_union_types') do
300
297
  end
301
298
  end
302
299
 
303
-
304
300
  RSpec.shared_context('with DB') do
305
301
  before(:all) do
306
302
  setup_db(self.class.metadata[:db_config] || DbConfigs::DB_OPTIONS.last)
@@ -346,7 +342,7 @@ end
346
342
 
347
343
  RSpec::Matchers.define :match_message do |msg|
348
344
  match do |actual|
349
- begin
345
+
350
346
  return false unless actual.is_a?(Hash)
351
347
 
352
348
  actual[:payloads]&.each do |p|
@@ -354,6 +350,6 @@ RSpec::Matchers.define :match_message do |msg|
354
350
  p[:payload].delete('message_id')
355
351
  end
356
352
  expect(actual).to match(a_hash_including(msg))
357
- end
353
+
358
354
  end
359
355
  end
@@ -44,7 +44,7 @@ each_db_config(Deimos::Utils::DbPoller::Base) do
44
44
  end
45
45
 
46
46
  it 'should raise an error if no pollers configured' do
47
- Deimos.configure {}
47
+ Deimos.configure {} # rubocop:disable Lint/EmptyBlock
48
48
  expect { Deimos::Utils::DbPoller.start! }.to raise_error('No pollers configured!')
49
49
  end
50
50
 
@@ -159,17 +159,17 @@ each_db_config(Deimos::Utils::DbPoller::Base) do
159
159
 
160
160
  # run_every is set to 1 minute
161
161
  travel_to time_value(secs: 62)
162
- expect(poller.should_run?).to eq(true)
162
+ expect(poller.should_run?).to be(true)
163
163
 
164
164
  travel_to time_value(secs: 30)
165
- expect(poller.should_run?).to eq(false)
165
+ expect(poller.should_run?).to be(false)
166
166
 
167
167
  travel_to time_value(mins: -1) # this shouldn't be possible but meh
168
- expect(poller.should_run?).to eq(false)
168
+ expect(poller.should_run?).to be(false)
169
169
 
170
170
  # take the 2 seconds of delay_time into account
171
171
  travel_to time_value(secs: 60)
172
- expect(poller.should_run?).to eq(false)
172
+ expect(poller.should_run?).to be(false)
173
173
  end
174
174
 
175
175
  describe '#process_batch' do
@@ -52,10 +52,7 @@ RSpec.describe Deimos::Utils::DeadlockRetry do
52
52
  Widget.create(test_id: 'second')
53
53
  end
54
54
 
55
- expect(Widget.all).to match_array([
56
- have_attributes(test_id: 'first'),
57
- have_attributes(test_id: 'second')
58
- ])
55
+ expect(Widget.all).to contain_exactly(have_attributes(test_id: 'first'), have_attributes(test_id: 'second'))
59
56
  end
60
57
 
61
58
  it 'should not retry non-deadlock exceptions' do
@@ -7,7 +7,7 @@ each_db_config(Deimos::Utils::OutboxProducer) do
7
7
  producer
8
8
  end
9
9
 
10
- let(:logger) { instance_double(Logger, error: nil, info: nil, debug: nil )}
10
+ let(:logger) { instance_double(Logger, error: nil, info: nil, debug: nil) }
11
11
 
12
12
  before(:each) do
13
13
  stub_const('Deimos::Utils::OutboxProducer::BATCH_SIZE', 2)
@@ -15,11 +15,15 @@ each_db_config(Deimos::Utils::OutboxProducer) do
15
15
  end
16
16
 
17
17
  specify '#process_next_messages' do
18
- expect(producer).to receive(:retrieve_topics).and_return(%w(topic1 topic2))
19
- expect(producer).to receive(:process_topic).twice
20
- expect(Deimos::KafkaTopicInfo).to receive(:ping_empty_topics).with(%w(topic1 topic2))
21
- expect(producer).to receive(:sleep).with(0.5)
18
+ allow(producer).to receive(:retrieve_topics).and_return(%w(topic1 topic2))
19
+ allow(producer).to receive(:process_topic)
20
+ allow(Deimos::KafkaTopicInfo).to receive(:ping_empty_topics)
21
+ allow(producer).to receive(:sleep)
22
22
  producer.process_next_messages
23
+ expect(producer).to have_received(:retrieve_topics)
24
+ expect(producer).to have_received(:process_topic).twice
25
+ expect(Deimos::KafkaTopicInfo).to have_received(:ping_empty_topics).with(%w(topic1 topic2))
26
+ expect(producer).to have_received(:sleep).with(0.5)
23
27
  end
24
28
 
25
29
  specify '#retrieve_topics' do
@@ -45,7 +49,7 @@ each_db_config(Deimos::Utils::OutboxProducer) do
45
49
  producer.current_topic = 'topic1'
46
50
  messages = producer.retrieve_messages
47
51
  expect(messages.size).to eq(3)
48
- expect(messages).to all(be_a_kind_of(Deimos::KafkaMessage))
52
+ expect(messages).to all(be_a(Deimos::KafkaMessage))
49
53
  end
50
54
 
51
55
  describe '#produce_messages' do
@@ -125,13 +129,16 @@ each_db_config(Deimos::Utils::OutboxProducer) do
125
129
  end
126
130
 
127
131
  it 'should do nothing if lock fails' do
128
- expect(Deimos::KafkaTopicInfo).to receive(:lock).
129
- with('my-topic', 'abc').and_return(false)
130
- expect(producer).not_to receive(:retrieve_messages)
132
+ allow(Deimos::KafkaTopicInfo).to receive(:lock).and_return(false)
133
+ allow(producer).to receive(:retrieve_messages)
131
134
  producer.process_topic('my-topic')
135
+ expect(Deimos::KafkaTopicInfo).to have_received(:lock).with('my-topic', 'abc')
136
+ expect(producer).not_to have_received(:retrieve_messages)
132
137
  end
133
138
 
134
- it 'should complete successfully' do
139
+ # using expect(x).to have_received(:y).ordered doesn't work
140
+ # rubocop:disable RSpec/StubbedMock
141
+ it 'should complete successfully' do # rubocop:disable RSpec/ExampleLength
135
142
  messages = (1..4).map do |i|
136
143
  Deimos::KafkaMessage.new(
137
144
  topic: 'my-topic',
@@ -196,13 +203,16 @@ each_db_config(Deimos::Utils::OutboxProducer) do
196
203
  with('my-topic', 'abc').once
197
204
  producer.process_topic('my-topic')
198
205
  end
206
+ # rubocop:enable RSpec/StubbedMock
199
207
 
200
208
  it 'should register an error if it gets an error' do
201
- expect(producer).to receive(:retrieve_messages).and_raise('OH NOES')
202
- expect(Deimos::KafkaTopicInfo).to receive(:register_error).
203
- with('my-topic', 'abc')
204
- expect(producer).not_to receive(:produce_messages)
209
+ allow(producer).to receive(:retrieve_messages).and_raise('OH NOES')
210
+ allow(Deimos::KafkaTopicInfo).to receive(:register_error)
211
+ allow(producer).to receive(:produce_messages)
205
212
  producer.process_topic('my-topic')
213
+ expect(producer).to have_received(:retrieve_messages)
214
+ expect(Deimos::KafkaTopicInfo).to have_received(:register_error).with('my-topic', 'abc')
215
+ expect(producer).not_to have_received(:produce_messages)
206
216
  end
207
217
 
208
218
  it 'should move on if it gets a partial batch' do
@@ -225,10 +235,9 @@ each_db_config(Deimos::Utils::OutboxProducer) do
225
235
  )
226
236
  end
227
237
 
228
- expect(Deimos::KafkaTopicInfo).to receive(:lock).
229
- with('my-topic', 'abc').and_return(true)
230
- expect(producer).to receive(:produce_messages).and_raise('OH NOES')
231
- expect(producer).to receive(:retrieve_messages).and_return(messages)
238
+ allow(Deimos::KafkaTopicInfo).to receive(:lock).and_return(true)
239
+ allow(producer).to receive(:produce_messages).and_raise('OH NOES')
240
+ allow(producer).to receive(:retrieve_messages).and_return(messages)
232
241
  expect(Deimos::KafkaTopicInfo).to receive(:register_error)
233
242
 
234
243
  expect(Deimos::KafkaMessage.count).to eq(4)
@@ -237,6 +246,9 @@ each_db_config(Deimos::Utils::OutboxProducer) do
237
246
  expect(event.payload[:messages]).to eq(messages)
238
247
  end
239
248
  producer.process_topic('my-topic')
249
+ expect(Deimos::KafkaTopicInfo).to have_received(:lock).with('my-topic', 'abc')
250
+ expect(producer).to have_received(:produce_messages)
251
+ expect(producer).to have_received(:retrieve_messages)
240
252
  # don't delete for regular errors
241
253
  expect(Deimos::KafkaMessage.count).to eq(4)
242
254
  Karafka.monitor.notifications_bus.clear('deimos.outbox.produce')
@@ -269,14 +281,14 @@ each_db_config(Deimos::Utils::OutboxProducer) do
269
281
  m.call(*args)
270
282
  end
271
283
 
272
- expect(Deimos::KafkaTopicInfo).to receive(:lock).
273
- with('my-topic', 'abc').and_return(true)
284
+ allow(Deimos::KafkaTopicInfo).to receive(:lock).and_return(true)
274
285
  expect(producer).to receive(:retrieve_messages).ordered.and_return(messages)
275
286
  expect(producer).to receive(:retrieve_messages).ordered.and_return([])
276
287
  expect(Karafka.producer).to receive(:produce_many_sync).once.with(messages.map(&:karafka_message))
277
288
 
278
289
  expect(Deimos::KafkaMessage.count).to eq(8)
279
290
  producer.process_topic('my-topic')
291
+ expect(Deimos::KafkaTopicInfo).to have_received(:lock).with('my-topic', 'abc')
280
292
  expect(Deimos::KafkaMessage.count).to eq(4)
281
293
  end
282
294
 
@@ -340,9 +352,9 @@ each_db_config(Deimos::Utils::OutboxProducer) do
340
352
  end
341
353
 
342
354
  example 'Full integration test' do
343
- Deimos::KafkaMessage.create!(topic: "topic1",
344
- message: "mess1",
345
- partition_key: "key1")
355
+ Deimos::KafkaMessage.create!(topic: 'topic1',
356
+ message: 'mess1',
357
+ partition_key: 'key1')
346
358
  producer.process_next_messages
347
359
  expect(Deimos::KafkaTopicInfo.count).to eq(1)
348
360
  expect(Deimos::KafkaTopicInfo.first.topic).to eq('topic1')
@@ -350,7 +362,7 @@ each_db_config(Deimos::Utils::OutboxProducer) do
350
362
  expect('topic1').to have_sent('mess1')
351
363
  end
352
364
 
353
- example 'Integration test - batching' do
365
+ example 'Integration test - batching' do # rubocop:disable RSpec/ExampleLength
354
366
  (1..4).each do |i|
355
367
  (1..2).each do |j|
356
368
  Deimos::KafkaMessage.create!(topic: "topic#{j}",
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: deimos-ruby
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.2.0
4
+ version: 2.2.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Daniel Orner
@@ -44,33 +44,33 @@ dependencies:
44
44
  - !ruby/object:Gem::Version
45
45
  version: '0.5'
46
46
  - !ruby/object:Gem::Dependency
47
- name: karafka
47
+ name: fig_tree
48
48
  requirement: !ruby/object:Gem::Requirement
49
49
  requirements:
50
50
  - - "~>"
51
51
  - !ruby/object:Gem::Version
52
- version: '2.0'
52
+ version: 0.2.0
53
53
  type: :runtime
54
54
  prerelease: false
55
55
  version_requirements: !ruby/object:Gem::Requirement
56
56
  requirements:
57
57
  - - "~>"
58
58
  - !ruby/object:Gem::Version
59
- version: '2.0'
59
+ version: 0.2.0
60
60
  - !ruby/object:Gem::Dependency
61
- name: fig_tree
61
+ name: karafka
62
62
  requirement: !ruby/object:Gem::Requirement
63
63
  requirements:
64
64
  - - "~>"
65
65
  - !ruby/object:Gem::Version
66
- version: 0.2.0
66
+ version: '2.0'
67
67
  type: :runtime
68
68
  prerelease: false
69
69
  version_requirements: !ruby/object:Gem::Requirement
70
70
  requirements:
71
71
  - - "~>"
72
72
  - !ruby/object:Gem::Version
73
- version: 0.2.0
73
+ version: '2.0'
74
74
  - !ruby/object:Gem::Dependency
75
75
  name: sigurd
76
76
  requirement: !ruby/object:Gem::Requirement
@@ -105,20 +105,6 @@ dependencies:
105
105
  - - ">="
106
106
  - !ruby/object:Gem::Version
107
107
  version: '0'
108
- - !ruby/object:Gem::Dependency
109
- name: activerecord-trilogy-adapter
110
- requirement: !ruby/object:Gem::Requirement
111
- requirements:
112
- - - ">="
113
- - !ruby/object:Gem::Version
114
- version: '0'
115
- type: :development
116
- prerelease: false
117
- version_requirements: !ruby/object:Gem::Requirement
118
- requirements:
119
- - - ">="
120
- - !ruby/object:Gem::Version
121
- version: '0'
122
108
  - !ruby/object:Gem::Dependency
123
109
  name: avro
124
110
  requirement: !ruby/object:Gem::Requirement
@@ -175,20 +161,6 @@ dependencies:
175
161
  - - ">="
176
162
  - !ruby/object:Gem::Version
177
163
  version: '4.2'
178
- - !ruby/object:Gem::Dependency
179
- name: proto_turf
180
- requirement: !ruby/object:Gem::Requirement
181
- requirements:
182
- - - ">="
183
- - !ruby/object:Gem::Version
184
- version: '0'
185
- type: :development
186
- prerelease: false
187
- version_requirements: !ruby/object:Gem::Requirement
188
- requirements:
189
- - - ">="
190
- - !ruby/object:Gem::Version
191
- version: '0'
192
164
  - !ruby/object:Gem::Dependency
193
165
  name: guard
194
166
  requirement: !ruby/object:Gem::Requirement
@@ -246,33 +218,33 @@ dependencies:
246
218
  - !ruby/object:Gem::Version
247
219
  version: '2.0'
248
220
  - !ruby/object:Gem::Dependency
249
- name: trilogy
221
+ name: pg
250
222
  requirement: !ruby/object:Gem::Requirement
251
223
  requirements:
252
- - - ">="
224
+ - - "~>"
253
225
  - !ruby/object:Gem::Version
254
- version: '0.1'
226
+ version: '1.1'
255
227
  type: :development
256
228
  prerelease: false
257
229
  version_requirements: !ruby/object:Gem::Requirement
258
230
  requirements:
259
- - - ">="
231
+ - - "~>"
260
232
  - !ruby/object:Gem::Version
261
- version: '0.1'
233
+ version: '1.1'
262
234
  - !ruby/object:Gem::Dependency
263
- name: pg
235
+ name: proto_turf
264
236
  requirement: !ruby/object:Gem::Requirement
265
237
  requirements:
266
- - - "~>"
238
+ - - ">="
267
239
  - !ruby/object:Gem::Version
268
- version: '1.1'
240
+ version: '0'
269
241
  type: :development
270
242
  prerelease: false
271
243
  version_requirements: !ruby/object:Gem::Requirement
272
244
  requirements:
273
- - - "~>"
245
+ - - ">="
274
246
  - !ruby/object:Gem::Version
275
- version: '1.1'
247
+ version: '0'
276
248
  - !ruby/object:Gem::Dependency
277
249
  name: rails
278
250
  requirement: !ruby/object:Gem::Requirement
@@ -361,30 +333,30 @@ dependencies:
361
333
  name: rubocop
362
334
  requirement: !ruby/object:Gem::Requirement
363
335
  requirements:
364
- - - '='
336
+ - - "~>"
365
337
  - !ruby/object:Gem::Version
366
- version: 0.89.0
338
+ version: '1.0'
367
339
  type: :development
368
340
  prerelease: false
369
341
  version_requirements: !ruby/object:Gem::Requirement
370
342
  requirements:
371
- - - '='
343
+ - - "~>"
372
344
  - !ruby/object:Gem::Version
373
- version: 0.89.0
345
+ version: '1.0'
374
346
  - !ruby/object:Gem::Dependency
375
347
  name: rubocop-rspec
376
348
  requirement: !ruby/object:Gem::Requirement
377
349
  requirements:
378
350
  - - '='
379
351
  - !ruby/object:Gem::Version
380
- version: 1.42.0
352
+ version: '3.8'
381
353
  type: :development
382
354
  prerelease: false
383
355
  version_requirements: !ruby/object:Gem::Requirement
384
356
  requirements:
385
357
  - - '='
386
358
  - !ruby/object:Gem::Version
387
- version: 1.42.0
359
+ version: '3.8'
388
360
  - !ruby/object:Gem::Dependency
389
361
  name: sord
390
362
  requirement: !ruby/object:Gem::Requirement
@@ -427,6 +399,48 @@ dependencies:
427
399
  - - "~>"
428
400
  - !ruby/object:Gem::Version
429
401
  version: '1.0'
402
+ - !ruby/object:Gem::Dependency
403
+ name: trilogy
404
+ requirement: !ruby/object:Gem::Requirement
405
+ requirements:
406
+ - - ">="
407
+ - !ruby/object:Gem::Version
408
+ version: '0.1'
409
+ type: :development
410
+ prerelease: false
411
+ version_requirements: !ruby/object:Gem::Requirement
412
+ requirements:
413
+ - - ">="
414
+ - !ruby/object:Gem::Version
415
+ version: '0.1'
416
+ - !ruby/object:Gem::Dependency
417
+ name: bigdecimal
418
+ requirement: !ruby/object:Gem::Requirement
419
+ requirements:
420
+ - - ">="
421
+ - !ruby/object:Gem::Version
422
+ version: '0'
423
+ type: :development
424
+ prerelease: false
425
+ version_requirements: !ruby/object:Gem::Requirement
426
+ requirements:
427
+ - - ">="
428
+ - !ruby/object:Gem::Version
429
+ version: '0'
430
+ - !ruby/object:Gem::Dependency
431
+ name: mutex_m
432
+ requirement: !ruby/object:Gem::Requirement
433
+ requirements:
434
+ - - ">="
435
+ - !ruby/object:Gem::Version
436
+ version: '0'
437
+ type: :development
438
+ prerelease: false
439
+ version_requirements: !ruby/object:Gem::Requirement
440
+ requirements:
441
+ - - ">="
442
+ - !ruby/object:Gem::Version
443
+ version: '0'
430
444
  email:
431
445
  - daniel.orner@wishabi.com
432
446
  executables:
@@ -442,7 +456,6 @@ files:
442
456
  - ".rspec"
443
457
  - ".rubocop.yml"
444
458
  - ".rubocop_todo.yml"
445
- - ".ruby-version"
446
459
  - ".tool-versions"
447
460
  - CHANGELOG.md
448
461
  - CODE_OF_CONDUCT.md
@@ -669,7 +682,8 @@ files:
669
682
  homepage: ''
670
683
  licenses:
671
684
  - Apache-2.0
672
- metadata: {}
685
+ metadata:
686
+ rubygems_mfa_required: 'true'
673
687
  rdoc_options: []
674
688
  require_paths:
675
689
  - lib
@@ -687,111 +701,4 @@ requirements: []
687
701
  rubygems_version: 3.6.9
688
702
  specification_version: 4
689
703
  summary: Kafka libraries for Ruby.
690
- test_files:
691
- - spec/active_record_batch_consumer_association_spec.rb
692
- - spec/active_record_batch_consumer_spec.rb
693
- - spec/active_record_consume/batch_consumption_spec.rb
694
- - spec/active_record_consume/batch_slicer_spec.rb
695
- - spec/active_record_consume/mass_updater_spec.rb
696
- - spec/active_record_consume/schema_model_converter_spec.rb
697
- - spec/active_record_consumer_spec.rb
698
- - spec/active_record_producer_spec.rb
699
- - spec/backends/base_spec.rb
700
- - spec/backends/kafka_async_spec.rb
701
- - spec/backends/kafka_spec.rb
702
- - spec/backends/outbox_spec.rb
703
- - spec/batch_consumer_spec.rb
704
- - spec/consumer_spec.rb
705
- - spec/deimos_spec.rb
706
- - spec/gen/sample/v1/sample_pb.rb
707
- - spec/generators/active_record_generator_spec.rb
708
- - spec/generators/schema_class/my_schema_spec.rb
709
- - spec/generators/schema_class/my_schema_with_circular_reference_spec.rb
710
- - spec/generators/schema_class/my_schema_with_complex_types_spec.rb
711
- - spec/generators/schema_class_generator_spec.rb
712
- - spec/handlers/my_batch_consumer.rb
713
- - spec/handlers/my_consumer.rb
714
- - spec/kafka_source_spec.rb
715
- - spec/kafka_topic_info_spec.rb
716
- - spec/karafka/karafka.rb
717
- - spec/karafka_config/karafka_spec.rb
718
- - spec/logging_spec.rb
719
- - spec/message_spec.rb
720
- - spec/producer_spec.rb
721
- - spec/protos/sample/v1/sample.proto
722
- - spec/rake_spec.rb
723
- - spec/schema_backends/avro_base_shared.rb
724
- - spec/schema_backends/avro_local_spec.rb
725
- - spec/schema_backends/avro_schema_registry_spec.rb
726
- - spec/schema_backends/avro_validation_spec.rb
727
- - spec/schema_backends/base_spec.rb
728
- - spec/schema_backends/proto_schema_registry_spec.rb
729
- - spec/schemas/com/my-namespace/Generated.avsc
730
- - spec/schemas/com/my-namespace/MyNestedSchema.avsc
731
- - spec/schemas/com/my-namespace/MySchema.avsc
732
- - spec/schemas/com/my-namespace/MySchemaCompound_key.avsc
733
- - spec/schemas/com/my-namespace/MySchemaId_key.avsc
734
- - spec/schemas/com/my-namespace/MySchemaWithBooleans.avsc
735
- - spec/schemas/com/my-namespace/MySchemaWithCircularReference.avsc
736
- - spec/schemas/com/my-namespace/MySchemaWithComplexTypes.avsc
737
- - spec/schemas/com/my-namespace/MySchemaWithDateTimes.avsc
738
- - spec/schemas/com/my-namespace/MySchemaWithId.avsc
739
- - spec/schemas/com/my-namespace/MySchemaWithTitle.avsc
740
- - spec/schemas/com/my-namespace/MySchemaWithUnionType.avsc
741
- - spec/schemas/com/my-namespace/MySchemaWithUniqueId.avsc
742
- - spec/schemas/com/my-namespace/MySchema_key.avsc
743
- - spec/schemas/com/my-namespace/Wibble.avsc
744
- - spec/schemas/com/my-namespace/Widget.avsc
745
- - spec/schemas/com/my-namespace/WidgetTheSecond.avsc
746
- - spec/schemas/com/my-namespace/WidgetTheThird.avsc
747
- - spec/schemas/com/my-namespace/my-suborg/MyLongNamespaceSchema.avsc
748
- - spec/schemas/com/my-namespace/request/CreateTopic.avsc
749
- - spec/schemas/com/my-namespace/request/Index.avsc
750
- - spec/schemas/com/my-namespace/request/UpdateRequest.avsc
751
- - spec/schemas/com/my-namespace/response/CreateTopic.avsc
752
- - spec/schemas/com/my-namespace/response/Index.avsc
753
- - spec/schemas/com/my-namespace/response/UpdateResponse.avsc
754
- - spec/schemas/my_namespace/generated.rb
755
- - spec/schemas/my_namespace/my_long_namespace_schema.rb
756
- - spec/schemas/my_namespace/my_nested_schema.rb
757
- - spec/schemas/my_namespace/my_schema.rb
758
- - spec/schemas/my_namespace/my_schema_compound_key.rb
759
- - spec/schemas/my_namespace/my_schema_id_key.rb
760
- - spec/schemas/my_namespace/my_schema_key.rb
761
- - spec/schemas/my_namespace/my_schema_with_boolean.rb
762
- - spec/schemas/my_namespace/my_schema_with_circular_reference.rb
763
- - spec/schemas/my_namespace/my_schema_with_complex_type.rb
764
- - spec/schemas/my_namespace/my_schema_with_date_time.rb
765
- - spec/schemas/my_namespace/my_schema_with_id.rb
766
- - spec/schemas/my_namespace/my_schema_with_title.rb
767
- - spec/schemas/my_namespace/my_schema_with_union_type.rb
768
- - spec/schemas/my_namespace/my_schema_with_unique_id.rb
769
- - spec/schemas/my_namespace/my_updated_schema.rb
770
- - spec/schemas/my_namespace/request/create_topic.rb
771
- - spec/schemas/my_namespace/request/index.rb
772
- - spec/schemas/my_namespace/request/update_request.rb
773
- - spec/schemas/my_namespace/response/create_topic.rb
774
- - spec/schemas/my_namespace/response/index.rb
775
- - spec/schemas/my_namespace/response/update_response.rb
776
- - spec/schemas/my_namespace/wibble.rb
777
- - spec/schemas/my_namespace/widget.rb
778
- - spec/schemas/my_namespace/widget_the_second.rb
779
- - spec/schemas/my_namespace/widget_the_third.rb
780
- - spec/snapshots/consumers-no-nest.snap
781
- - spec/snapshots/consumers.snap
782
- - spec/snapshots/consumers_and_producers-no-nest.snap
783
- - spec/snapshots/consumers_and_producers.snap
784
- - spec/snapshots/consumers_circular-no-nest.snap
785
- - spec/snapshots/consumers_circular.snap
786
- - spec/snapshots/consumers_complex_types-no-nest.snap
787
- - spec/snapshots/consumers_complex_types.snap
788
- - spec/snapshots/consumers_nested-no-nest.snap
789
- - spec/snapshots/consumers_nested.snap
790
- - spec/snapshots/namespace_folders.snap
791
- - spec/snapshots/namespace_map.snap
792
- - spec/snapshots/producers_with_key-no-nest.snap
793
- - spec/snapshots/producers_with_key.snap
794
- - spec/spec_helper.rb
795
- - spec/utils/db_poller_spec.rb
796
- - spec/utils/deadlock_retry_spec.rb
797
- - spec/utils/outbox_producer_spec.rb
704
+ test_files: []
data/.ruby-version DELETED
@@ -1 +0,0 @@
1
- 3.2.2