deimos-ruby 1.12.4 → 1.13.0

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 (33) hide show
  1. checksums.yaml +4 -4
  2. data/.gemfiles/avro_turf-0.gemfile +3 -0
  3. data/.gemfiles/avro_turf-1.gemfile +3 -0
  4. data/.github/workflows/ci.yml +49 -0
  5. data/.gitignore +2 -1
  6. data/CHANGELOG.md +16 -0
  7. data/README.md +3 -3
  8. data/bin/console +15 -0
  9. data/deimos-ruby.gemspec +1 -1
  10. data/docs/CONFIGURATION.md +15 -1
  11. data/lib/deimos/config/configuration.rb +62 -2
  12. data/lib/deimos/config/phobos_config.rb +24 -0
  13. data/lib/deimos/metrics/datadog.rb +1 -1
  14. data/lib/deimos/schema_backends/avro_schema_registry.rb +4 -1
  15. data/lib/deimos/version.rb +1 -1
  16. data/lib/generators/deimos/schema_class_generator.rb +27 -1
  17. data/spec/active_record_batch_consumer_spec.rb +1 -1
  18. data/spec/active_record_consumer_spec.rb +6 -6
  19. data/spec/active_record_producer_spec.rb +1 -1
  20. data/spec/config/configuration_spec.rb +25 -1
  21. data/spec/consumer_spec.rb +17 -17
  22. data/spec/generators/schema_class/my_schema_with_complex_types_spec.rb +3 -2
  23. data/spec/generators/schema_class_generator_spec.rb +2 -2
  24. data/spec/producer_spec.rb +24 -24
  25. data/spec/schema_backends/avro_base_shared.rb +2 -2
  26. data/spec/schema_classes/my_schema_key.rb +2 -2
  27. data/spec/schema_classes/my_schema_with_complex_types.rb +34 -2
  28. data/spec/schemas/com/my-namespace/{MySchemaCompound-key.avsc → MySchemaCompound_key.avsc} +1 -1
  29. data/spec/schemas/com/my-namespace/MySchemaWithComplexTypes.avsc +11 -0
  30. data/spec/schemas/com/my-namespace/{MySchema-key.avsc → MySchema_key.avsc} +1 -1
  31. data/spec/utils/inline_consumer_spec.rb +2 -2
  32. metadata +19 -9
  33. data/Gemfile.lock +0 -292
@@ -81,7 +81,7 @@ RSpec.describe Deimos::Generators::SchemaClassGenerator do
81
81
  topic 'MyTopic'
82
82
  schema 'MySchema'
83
83
  namespace 'com.my-namespace'
84
- key_config schema: 'MySchema-key'
84
+ key_config schema: 'MySchema_key'
85
85
  end
86
86
  end
87
87
  described_class.start
@@ -143,7 +143,7 @@ RSpec.describe Deimos::Generators::SchemaClassGenerator do
143
143
  topic 'MyTopic'
144
144
  schema 'MySchema'
145
145
  namespace 'com.my-namespace'
146
- key_config schema: 'MySchema-key'
146
+ key_config schema: 'MySchema_key'
147
147
  end
148
148
 
149
149
  producer do
@@ -53,7 +53,7 @@ module ProducerTest
53
53
  schema 'MySchema'
54
54
  namespace 'com.my-namespace'
55
55
  topic 'my-topic2'
56
- key_config schema: 'MySchema-key'
56
+ key_config schema: 'MySchema_key'
57
57
  end
58
58
  stub_const('MySchemaProducer', producer_class)
59
59
 
@@ -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
@@ -294,7 +294,7 @@ module ProducerTest
294
294
 
295
295
  it 'should properly encode and coerce values with a nested record' do
296
296
  expect(MyNestedSchemaProducer.encoder).to receive(:encode_key).with('test_id', 'foo', topic: 'my-topic-key')
297
- MyNestedSchemaProducer.publish(
297
+ MyNestedSchemaProducer.publish({
298
298
  'test_id' => 'foo',
299
299
  'test_float' => BigDecimal('123.456'),
300
300
  'test_array' => ['1'],
@@ -305,7 +305,7 @@ module ProducerTest
305
305
  'some_optional_int' => nil
306
306
  },
307
307
  'some_optional_record' => nil
308
- )
308
+ })
309
309
  expect(MyNestedSchemaProducer.topic).to have_sent(
310
310
  'test_id' => 'foo',
311
311
  'test_float' => 123.456,
@@ -504,23 +504,23 @@ module ProducerTest
504
504
  it 'should disable globally' do
505
505
  Deimos.disable_producers do
506
506
  Deimos.disable_producers do # test nested
507
- MyProducer.publish(
507
+ MyProducer.publish({
508
508
  'test_id' => 'foo',
509
509
  'some_int' => 123,
510
510
  :payload_key => '123'
511
- )
512
- MyProducerWithID.publish(
511
+ })
512
+ MyProducerWithID.publish({
513
513
  'test_id' => 'foo', 'some_int' => 123
514
- )
514
+ })
515
515
  expect('my-topic').not_to have_sent(anything)
516
516
  expect(Deimos).to be_producers_disabled
517
517
  expect(Deimos).to be_producers_disabled([MyProducer])
518
518
  end
519
519
  end
520
520
 
521
- MyProducerWithID.publish(
521
+ MyProducerWithID.publish({
522
522
  'test_id' => 'foo', 'some_int' => 123, :payload_key => 123
523
- )
523
+ })
524
524
  expect('my-topic').
525
525
  to have_sent('test_id' => 'foo', 'some_int' => 123,
526
526
  'message_id' => anything, 'timestamp' => anything)
@@ -531,15 +531,15 @@ module ProducerTest
531
531
  it 'should disable a single producer' do
532
532
  Deimos.disable_producers(MyProducer) do # test nested
533
533
  Deimos.disable_producers(MyProducer) do
534
- MySchemaProducer.publish(
535
- 'test_id' => 'foo', 'some_int' => 123,
536
- :payload_key => { 'test_id' => 'foo_key' }
537
- )
538
- MyProducer.publish(
539
- 'test_id' => 'foo',
540
- 'some_int' => 123,
541
- :payload_key => '123'
542
- )
534
+ MySchemaProducer.publish({
535
+ 'test_id' => 'foo', 'some_int' => 123,
536
+ :payload_key => { 'test_id' => 'foo_key' }
537
+ })
538
+ MyProducer.publish({
539
+ 'test_id' => 'foo',
540
+ 'some_int' => 123,
541
+ :payload_key => '123'
542
+ })
543
543
  expect('my-topic').not_to have_sent(anything)
544
544
  expect('my-topic2').to have_sent('test_id' => 'foo', 'some_int' => 123)
545
545
  expect(Deimos).not_to be_producers_disabled
@@ -550,11 +550,11 @@ module ProducerTest
550
550
  expect(Deimos).not_to be_producers_disabled
551
551
  expect(Deimos).not_to be_producers_disabled(MyProducer)
552
552
  expect(Deimos).not_to be_producers_disabled(MySchemaProducer)
553
- MyProducer.publish(
554
- 'test_id' => 'foo',
555
- 'some_int' => 123,
556
- :payload_key => '123'
557
- )
553
+ MyProducer.publish({
554
+ 'test_id' => 'foo',
555
+ 'some_int' => 123,
556
+ :payload_key => '123'
557
+ })
558
558
  expect('my-topic').
559
559
  to have_sent('test_id' => 'foo', 'some_int' => 123)
560
560
  end
@@ -87,13 +87,13 @@ RSpec.shared_examples_for('an Avro backend') do
87
87
  describe('#validate') do
88
88
  it 'should pass valid schemas' do
89
89
  expect {
90
- backend.validate({ 'test_id' => 'hi', 'some_int' => 4 }, { schema: 'MySchema' })
90
+ backend.validate({ 'test_id' => 'hi', 'some_int' => 4 }, schema: 'MySchema')
91
91
  }.not_to raise_error
92
92
  end
93
93
 
94
94
  it 'should fail invalid schemas' do
95
95
  expect {
96
- backend.validate({ 'test_id2' => 'hi', 'some_int' => 4 }, { schema: 'MySchema' })
96
+ backend.validate({ 'test_id2' => 'hi', 'some_int' => 4 }, schema: 'MySchema')
97
97
  }.to raise_error(Avro::SchemaValidator::ValidationError)
98
98
  end
99
99
 
@@ -3,7 +3,7 @@
3
3
  # This file is autogenerated by Deimos, Do NOT modify
4
4
  module Schemas
5
5
  ### Primary Schema Class ###
6
- # Autogenerated Schema for Record at com.my-namespace.MySchema-key
6
+ # Autogenerated Schema for Record at com.my-namespace.MySchema_key
7
7
  class MySchemaKey < Deimos::SchemaClass::Record
8
8
  ### Attribute Accessors ###
9
9
  # @param value [String]
@@ -17,7 +17,7 @@ module Schemas
17
17
 
18
18
  # @override
19
19
  def schema
20
- 'MySchema-key'
20
+ 'MySchema_key'
21
21
  end
22
22
 
23
23
  # @override
@@ -55,6 +55,28 @@ module Schemas
55
55
  end
56
56
  end
57
57
 
58
+ # Autogenerated Schema for Enum at com.my-namespace.AnotherEnum
59
+ class AnotherEnum < Deimos::SchemaClass::Enum
60
+ # @return ['sym3', 'sym4']
61
+ attr_accessor :another_enum
62
+
63
+ # :nodoc:
64
+ def initialize(another_enum)
65
+ super
66
+ self.another_enum = another_enum
67
+ end
68
+
69
+ # @override
70
+ def symbols
71
+ %w(sym3 sym4)
72
+ end
73
+
74
+ # @override
75
+ def to_h
76
+ @another_enum
77
+ end
78
+ end
79
+
58
80
  ### Primary Schema Class ###
59
81
  # Autogenerated Schema for Record at com.my-namespace.MySchemaWithComplexTypes
60
82
  class MySchemaWithComplexTypes < Deimos::SchemaClass::Record
@@ -69,6 +91,8 @@ module Schemas
69
91
  attr_reader :some_record_map
70
92
  # @return [Array<AnEnum>]
71
93
  attr_reader :some_enum_array
94
+ # @return [nil, AnotherEnum]
95
+ attr_reader :some_optional_enum
72
96
 
73
97
  ### Attribute Accessors ###
74
98
  # @param value [String]
@@ -116,6 +140,11 @@ module Schemas
116
140
  end
117
141
  end
118
142
 
143
+ # @param value [nil, AnotherEnum]
144
+ def some_optional_enum=(value)
145
+ @some_optional_enum = AnotherEnum.initialize_from_value(value)
146
+ end
147
+
119
148
  # @override
120
149
  def initialize(test_id: nil,
121
150
  test_float: nil,
@@ -127,7 +156,8 @@ module Schemas
127
156
  some_optional_record: nil,
128
157
  some_record_array: nil,
129
158
  some_record_map: nil,
130
- some_enum_array: nil)
159
+ some_enum_array: nil,
160
+ some_optional_enum: nil)
131
161
  super
132
162
  self.test_id = test_id
133
163
  self.test_float = test_float
@@ -140,6 +170,7 @@ module Schemas
140
170
  self.some_record_array = some_record_array
141
171
  self.some_record_map = some_record_map
142
172
  self.some_enum_array = some_enum_array
173
+ self.some_optional_enum = some_optional_enum
143
174
  end
144
175
 
145
176
  # @override
@@ -165,7 +196,8 @@ module Schemas
165
196
  'some_optional_record' => @some_optional_record&.to_h,
166
197
  'some_record_array' => @some_record_array.map { |v| v&.to_h },
167
198
  'some_record_map' => @some_record_map.transform_values { |v| v&.to_h },
168
- 'some_enum_array' => @some_enum_array.map { |v| v&.to_h }
199
+ 'some_enum_array' => @some_enum_array.map { |v| v&.to_h },
200
+ 'some_optional_enum' => @some_optional_enum&.to_h
169
201
  }
170
202
  end
171
203
  end
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "namespace": "com.my-namespace",
3
- "name": "MySchemaCompound-key",
3
+ "name": "MySchemaCompound_key",
4
4
  "type": "record",
5
5
  "doc": "Test schema",
6
6
  "fields": [
@@ -90,6 +90,17 @@
90
90
  "symbols": ["sym1", "sym2"]
91
91
  }
92
92
  }
93
+ },
94
+ {
95
+ "name": "some_optional_enum",
96
+ "type": [
97
+ "null",
98
+ {
99
+ "type": "enum",
100
+ "name": "AnotherEnum",
101
+ "symbols": ["sym3", "sym4"]
102
+ }
103
+ ]
93
104
  }
94
105
  ]
95
106
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "namespace": "com.my-namespace",
3
- "name": "MySchema-key",
3
+ "name": "MySchema_key",
4
4
  "type": "record",
5
5
  "doc": "Test schema",
6
6
  "fields": [
@@ -17,14 +17,14 @@ describe Deimos::Utils::SeekListener do
17
17
  it 'should seek offset' do
18
18
  allow(consumer).to receive(:seek)
19
19
  expect(consumer).to receive(:seek).once
20
- seek_listener = described_class.new({ handler: handler, group_id: 999, topic: 'test_topic' })
20
+ seek_listener = described_class.new(handler: handler, group_id: 999, topic: 'test_topic')
21
21
  seek_listener.start_listener
22
22
  end
23
23
 
24
24
  it 'should retry on errors when seeking offset' do
25
25
  allow(consumer).to receive(:seek).and_raise(StandardError)
26
26
  expect(consumer).to receive(:seek).twice
27
- seek_listener = described_class.new({ handler: handler, group_id: 999, topic: 'test_topic' })
27
+ seek_listener = described_class.new(handler: handler, group_id: 999, topic: 'test_topic')
28
28
  seek_listener.start_listener
29
29
  end
30
30
  end
metadata CHANGED
@@ -1,29 +1,35 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: deimos-ruby
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.12.4
4
+ version: 1.13.0
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-01-13 00:00:00.000000000 Z
11
+ date: 2022-03-30 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: avro_turf
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - "~>"
17
+ - - ">="
18
18
  - !ruby/object:Gem::Version
19
19
  version: '0.11'
20
+ - - "<"
21
+ - !ruby/object:Gem::Version
22
+ version: '2'
20
23
  type: :runtime
21
24
  prerelease: false
22
25
  version_requirements: !ruby/object:Gem::Requirement
23
26
  requirements:
24
- - - "~>"
27
+ - - ">="
25
28
  - !ruby/object:Gem::Version
26
29
  version: '0.11'
30
+ - - "<"
31
+ - !ruby/object:Gem::Version
32
+ version: '2'
27
33
  - !ruby/object:Gem::Dependency
28
34
  name: phobos
29
35
  requirement: !ruby/object:Gem::Requirement
@@ -342,11 +348,15 @@ description:
342
348
  email:
343
349
  - daniel.orner@wishabi.com
344
350
  executables:
351
+ - console
345
352
  - deimos
346
353
  extensions: []
347
354
  extra_rdoc_files: []
348
355
  files:
349
356
  - ".circleci/config.yml"
357
+ - ".gemfiles/avro_turf-0.gemfile"
358
+ - ".gemfiles/avro_turf-1.gemfile"
359
+ - ".github/workflows/ci.yml"
350
360
  - ".gitignore"
351
361
  - ".gitmodules"
352
362
  - ".rspec"
@@ -357,11 +367,11 @@ files:
357
367
  - CODE_OF_CONDUCT.md
358
368
  - Dockerfile
359
369
  - Gemfile
360
- - Gemfile.lock
361
370
  - Guardfile
362
371
  - LICENSE.md
363
372
  - README.md
364
373
  - Rakefile
374
+ - bin/console
365
375
  - bin/deimos
366
376
  - deimos-ruby.gemspec
367
377
  - docker-compose.yml
@@ -477,14 +487,14 @@ files:
477
487
  - spec/schema_classes/my_schema_with_complex_types.rb
478
488
  - spec/schemas/com/my-namespace/Generated.avsc
479
489
  - spec/schemas/com/my-namespace/MyNestedSchema.avsc
480
- - spec/schemas/com/my-namespace/MySchema-key.avsc
481
490
  - spec/schemas/com/my-namespace/MySchema.avsc
482
- - spec/schemas/com/my-namespace/MySchemaCompound-key.avsc
491
+ - spec/schemas/com/my-namespace/MySchemaCompound_key.avsc
483
492
  - spec/schemas/com/my-namespace/MySchemaWithBooleans.avsc
484
493
  - spec/schemas/com/my-namespace/MySchemaWithComplexTypes.avsc
485
494
  - spec/schemas/com/my-namespace/MySchemaWithDateTimes.avsc
486
495
  - spec/schemas/com/my-namespace/MySchemaWithId.avsc
487
496
  - spec/schemas/com/my-namespace/MySchemaWithUniqueId.avsc
497
+ - spec/schemas/com/my-namespace/MySchema_key.avsc
488
498
  - spec/schemas/com/my-namespace/Wibble.avsc
489
499
  - spec/schemas/com/my-namespace/Widget.avsc
490
500
  - spec/schemas/com/my-namespace/WidgetTheSecond.avsc
@@ -568,14 +578,14 @@ test_files:
568
578
  - spec/schema_classes/my_schema_with_complex_types.rb
569
579
  - spec/schemas/com/my-namespace/Generated.avsc
570
580
  - spec/schemas/com/my-namespace/MyNestedSchema.avsc
571
- - spec/schemas/com/my-namespace/MySchema-key.avsc
572
581
  - spec/schemas/com/my-namespace/MySchema.avsc
573
- - spec/schemas/com/my-namespace/MySchemaCompound-key.avsc
582
+ - spec/schemas/com/my-namespace/MySchemaCompound_key.avsc
574
583
  - spec/schemas/com/my-namespace/MySchemaWithBooleans.avsc
575
584
  - spec/schemas/com/my-namespace/MySchemaWithComplexTypes.avsc
576
585
  - spec/schemas/com/my-namespace/MySchemaWithDateTimes.avsc
577
586
  - spec/schemas/com/my-namespace/MySchemaWithId.avsc
578
587
  - spec/schemas/com/my-namespace/MySchemaWithUniqueId.avsc
588
+ - spec/schemas/com/my-namespace/MySchema_key.avsc
579
589
  - spec/schemas/com/my-namespace/Wibble.avsc
580
590
  - spec/schemas/com/my-namespace/Widget.avsc
581
591
  - spec/schemas/com/my-namespace/WidgetTheSecond.avsc
data/Gemfile.lock DELETED
@@ -1,292 +0,0 @@
1
- PATH
2
- remote: .
3
- specs:
4
- deimos-ruby (1.12.3)
5
- avro_turf (~> 0.11)
6
- fig_tree (~> 0.0.2)
7
- phobos (>= 1.9, < 3.0)
8
- ruby-kafka (< 2)
9
- sigurd (~> 0.0.1)
10
-
11
- GEM
12
- remote: https://rubygems.org/
13
- specs:
14
- actioncable (6.1.3)
15
- actionpack (= 6.1.3)
16
- activesupport (= 6.1.3)
17
- nio4r (~> 2.0)
18
- websocket-driver (>= 0.6.1)
19
- actionmailbox (6.1.3)
20
- actionpack (= 6.1.3)
21
- activejob (= 6.1.3)
22
- activerecord (= 6.1.3)
23
- activestorage (= 6.1.3)
24
- activesupport (= 6.1.3)
25
- mail (>= 2.7.1)
26
- actionmailer (6.1.3)
27
- actionpack (= 6.1.3)
28
- actionview (= 6.1.3)
29
- activejob (= 6.1.3)
30
- activesupport (= 6.1.3)
31
- mail (~> 2.5, >= 2.5.4)
32
- rails-dom-testing (~> 2.0)
33
- actionpack (6.1.3)
34
- actionview (= 6.1.3)
35
- activesupport (= 6.1.3)
36
- rack (~> 2.0, >= 2.0.9)
37
- rack-test (>= 0.6.3)
38
- rails-dom-testing (~> 2.0)
39
- rails-html-sanitizer (~> 1.0, >= 1.2.0)
40
- actiontext (6.1.3)
41
- actionpack (= 6.1.3)
42
- activerecord (= 6.1.3)
43
- activestorage (= 6.1.3)
44
- activesupport (= 6.1.3)
45
- nokogiri (>= 1.8.5)
46
- actionview (6.1.3)
47
- activesupport (= 6.1.3)
48
- builder (~> 3.1)
49
- erubi (~> 1.4)
50
- rails-dom-testing (~> 2.0)
51
- rails-html-sanitizer (~> 1.1, >= 1.2.0)
52
- activejob (6.1.3)
53
- activesupport (= 6.1.3)
54
- globalid (>= 0.3.6)
55
- activemodel (6.1.3)
56
- activesupport (= 6.1.3)
57
- activerecord (6.1.3)
58
- activemodel (= 6.1.3)
59
- activesupport (= 6.1.3)
60
- activerecord-import (1.0.8)
61
- activerecord (>= 3.2)
62
- activestorage (6.1.3)
63
- actionpack (= 6.1.3)
64
- activejob (= 6.1.3)
65
- activerecord (= 6.1.3)
66
- activesupport (= 6.1.3)
67
- marcel (~> 0.3.1)
68
- mimemagic (~> 0.3.2)
69
- activesupport (6.1.3)
70
- concurrent-ruby (~> 1.0, >= 1.0.2)
71
- i18n (>= 1.6, < 2)
72
- minitest (>= 5.1)
73
- tzinfo (~> 2.0)
74
- zeitwerk (~> 2.3)
75
- ast (2.4.2)
76
- avro (1.9.2)
77
- multi_json
78
- avro_turf (0.11.0)
79
- avro (>= 1.7.7, < 1.10)
80
- excon (~> 0.45)
81
- builder (3.2.4)
82
- coderay (1.1.3)
83
- concurrent-ruby (1.1.8)
84
- concurrent-ruby-ext (1.1.8)
85
- concurrent-ruby (= 1.1.8)
86
- crass (1.0.6)
87
- database_cleaner (1.99.0)
88
- ddtrace (0.46.0)
89
- msgpack
90
- diff-lcs (1.4.4)
91
- digest-crc (0.6.4)
92
- rake (>= 12.0.0, < 14.0.0)
93
- dogstatsd-ruby (4.8.3)
94
- erubi (1.10.0)
95
- excon (0.89.0)
96
- exponential-backoff (0.0.4)
97
- ffi (1.15.0)
98
- fig_tree (0.0.2)
99
- activesupport (>= 3.0.0)
100
- formatador (0.2.5)
101
- globalid (0.4.2)
102
- activesupport (>= 4.2.0)
103
- guard (2.16.2)
104
- formatador (>= 0.2.4)
105
- listen (>= 2.7, < 4.0)
106
- lumberjack (>= 1.0.12, < 2.0)
107
- nenv (~> 0.1)
108
- notiffany (~> 0.0)
109
- pry (>= 0.9.12)
110
- shellany (~> 0.0)
111
- thor (>= 0.18.1)
112
- guard-compat (1.2.1)
113
- guard-rspec (4.7.3)
114
- guard (~> 2.1)
115
- guard-compat (~> 1.1)
116
- rspec (>= 2.99.0, < 4.0)
117
- guard-rubocop (1.4.0)
118
- guard (~> 2.0)
119
- rubocop (< 2.0)
120
- i18n (1.8.9)
121
- concurrent-ruby (~> 1.0)
122
- listen (3.4.1)
123
- rb-fsevent (~> 0.10, >= 0.10.3)
124
- rb-inotify (~> 0.9, >= 0.9.10)
125
- little-plugger (1.1.4)
126
- logging (2.3.0)
127
- little-plugger (~> 1.1)
128
- multi_json (~> 1.14)
129
- loofah (2.9.0)
130
- crass (~> 1.0.2)
131
- nokogiri (>= 1.5.9)
132
- lumberjack (1.2.8)
133
- mail (2.7.1)
134
- mini_mime (>= 0.1.1)
135
- marcel (0.3.3)
136
- mimemagic (~> 0.3.2)
137
- method_source (1.0.0)
138
- mimemagic (0.3.10)
139
- nokogiri (~> 1)
140
- rake
141
- mini_mime (1.0.2)
142
- mini_portile2 (2.5.1)
143
- minitest (5.14.4)
144
- msgpack (1.4.2)
145
- multi_json (1.15.0)
146
- mysql2 (0.5.3)
147
- nenv (0.3.0)
148
- nio4r (2.5.7)
149
- nokogiri (1.11.5)
150
- mini_portile2 (~> 2.5.0)
151
- racc (~> 1.4)
152
- notiffany (0.1.3)
153
- nenv (~> 0.1)
154
- shellany (~> 0.0)
155
- parallel (1.20.1)
156
- parser (3.0.1.1)
157
- ast (~> 2.4.1)
158
- pg (1.2.3)
159
- phobos (2.1.0)
160
- activesupport (>= 3.0.0)
161
- concurrent-ruby (>= 1.0.2)
162
- concurrent-ruby-ext (>= 1.0.2)
163
- exponential-backoff
164
- logging
165
- ruby-kafka
166
- thor
167
- pry (0.14.0)
168
- coderay (~> 1.1)
169
- method_source (~> 1.0)
170
- racc (1.5.2)
171
- rack (2.2.3)
172
- rack-test (1.1.0)
173
- rack (>= 1.0, < 3)
174
- rails (6.1.3)
175
- actioncable (= 6.1.3)
176
- actionmailbox (= 6.1.3)
177
- actionmailer (= 6.1.3)
178
- actionpack (= 6.1.3)
179
- actiontext (= 6.1.3)
180
- actionview (= 6.1.3)
181
- activejob (= 6.1.3)
182
- activemodel (= 6.1.3)
183
- activerecord (= 6.1.3)
184
- activestorage (= 6.1.3)
185
- activesupport (= 6.1.3)
186
- bundler (>= 1.15.0)
187
- railties (= 6.1.3)
188
- sprockets-rails (>= 2.0.0)
189
- rails-dom-testing (2.0.3)
190
- activesupport (>= 4.2.0)
191
- nokogiri (>= 1.6)
192
- rails-html-sanitizer (1.3.0)
193
- loofah (~> 2.3)
194
- railties (6.1.3)
195
- actionpack (= 6.1.3)
196
- activesupport (= 6.1.3)
197
- method_source
198
- rake (>= 0.8.7)
199
- thor (~> 1.0)
200
- rainbow (3.0.0)
201
- rake (13.0.3)
202
- rb-fsevent (0.10.4)
203
- rb-inotify (0.10.1)
204
- ffi (~> 1.0)
205
- regexp_parser (2.1.1)
206
- rexml (3.2.5)
207
- rspec (3.10.0)
208
- rspec-core (~> 3.10.0)
209
- rspec-expectations (~> 3.10.0)
210
- rspec-mocks (~> 3.10.0)
211
- rspec-core (3.10.1)
212
- rspec-support (~> 3.10.0)
213
- rspec-expectations (3.10.1)
214
- diff-lcs (>= 1.2.0, < 2.0)
215
- rspec-support (~> 3.10.0)
216
- rspec-mocks (3.10.2)
217
- diff-lcs (>= 1.2.0, < 2.0)
218
- rspec-support (~> 3.10.0)
219
- rspec-rails (4.1.1)
220
- actionpack (>= 4.2)
221
- activesupport (>= 4.2)
222
- railties (>= 4.2)
223
- rspec-core (~> 3.10)
224
- rspec-expectations (~> 3.10)
225
- rspec-mocks (~> 3.10)
226
- rspec-support (~> 3.10)
227
- rspec-support (3.10.2)
228
- rspec_junit_formatter (0.4.1)
229
- rspec-core (>= 2, < 4, != 2.12.0)
230
- rubocop (0.89.0)
231
- parallel (~> 1.10)
232
- parser (>= 2.7.1.1)
233
- rainbow (>= 2.2.2, < 4.0)
234
- regexp_parser (>= 1.7)
235
- rexml
236
- rubocop-ast (>= 0.1.0, < 1.0)
237
- ruby-progressbar (~> 1.7)
238
- unicode-display_width (>= 1.4.0, < 2.0)
239
- rubocop-ast (0.8.0)
240
- parser (>= 2.7.1.5)
241
- rubocop-rspec (1.42.0)
242
- rubocop (>= 0.87.0)
243
- ruby-kafka (1.4.0)
244
- digest-crc
245
- ruby-progressbar (1.11.0)
246
- shellany (0.0.1)
247
- sigurd (0.0.3)
248
- concurrent-ruby (~> 1)
249
- exponential-backoff
250
- sprockets (4.0.2)
251
- concurrent-ruby (~> 1.0)
252
- rack (> 1, < 3)
253
- sprockets-rails (3.2.2)
254
- actionpack (>= 4.0)
255
- activesupport (>= 4.0)
256
- sprockets (>= 3.0.0)
257
- sqlite3 (1.4.2)
258
- thor (1.1.0)
259
- tzinfo (2.0.4)
260
- concurrent-ruby (~> 1.0)
261
- unicode-display_width (1.7.0)
262
- websocket-driver (0.7.3)
263
- websocket-extensions (>= 0.1.0)
264
- websocket-extensions (0.1.5)
265
- zeitwerk (2.4.2)
266
-
267
- PLATFORMS
268
- ruby
269
-
270
- DEPENDENCIES
271
- activerecord-import
272
- avro (~> 1.9)
273
- database_cleaner (~> 1.7)
274
- ddtrace (~> 0.11)
275
- deimos-ruby!
276
- dogstatsd-ruby (~> 4.2)
277
- guard (~> 2)
278
- guard-rspec (~> 4)
279
- guard-rubocop (~> 1)
280
- mysql2 (~> 0.5)
281
- pg (~> 1.1)
282
- rails (~> 6)
283
- rake (~> 13)
284
- rspec (~> 3)
285
- rspec-rails (~> 4)
286
- rspec_junit_formatter (~> 0.3)
287
- rubocop (= 0.89.0)
288
- rubocop-rspec (= 1.42.0)
289
- sqlite3 (~> 1.3)
290
-
291
- BUNDLED WITH
292
- 2.2.17