deimos-ruby 2.6.0.pre.beta1 → 2.6.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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +8 -2
- data/README.md +45 -20
- data/deimos-ruby.gemspec +0 -1
- data/docs/CONFIGURATION.md +5 -11
- data/lib/deimos/active_record_consume/batch_consumption.rb +128 -31
- data/lib/deimos/active_record_consume/batch_record.rb +3 -0
- data/lib/deimos/active_record_consume/message_consumption.rb +2 -2
- data/lib/deimos/active_record_consumer.rb +6 -1
- data/lib/deimos/active_record_producer.rb +1 -1
- data/lib/deimos/config/configuration.rb +11 -34
- data/lib/deimos/exceptions.rb +17 -0
- data/lib/deimos/ext/consumer_route.rb +3 -1
- data/lib/deimos/ext/producer_middleware.rb +2 -2
- data/lib/deimos/logging.rb +0 -9
- data/lib/deimos/producer.rb +5 -5
- data/lib/deimos/schema_backends/avro_base.rb +36 -7
- data/lib/deimos/schema_class/base.rb +62 -0
- data/lib/deimos/schema_class/enum.rb +49 -0
- data/lib/deimos/schema_class/record.rb +100 -0
- data/lib/deimos/transcoder.rb +6 -6
- data/lib/deimos/utils/deadlock_retry.rb +16 -2
- data/lib/deimos/utils/schema_class.rb +47 -14
- data/lib/deimos/version.rb +1 -1
- data/lib/deimos.rb +4 -3
- data/lib/generators/deimos/schema_class/templates/schema_class.rb.tt +8 -0
- data/lib/generators/deimos/schema_class/templates/schema_enum.rb.tt +13 -0
- data/lib/generators/deimos/schema_class/templates/schema_record.rb.tt +102 -0
- data/lib/generators/deimos/schema_class_generator.rb +369 -0
- data/lib/tasks/deimos.rake +4 -16
- data/regenerate_test_schema_classes.rb +3 -12
- data/spec/active_record_batch_consumer_association_spec.rb +1 -1
- data/spec/active_record_batch_consumer_spec.rb +286 -1
- data/spec/active_record_consume/batch_consumption_spec.rb +1 -1
- data/spec/active_record_consumer_spec.rb +3 -3
- data/spec/active_record_producer_spec.rb +1 -1
- data/spec/batch_consumer_spec.rb +2 -2
- data/spec/consumer_spec.rb +5 -5
- data/spec/generators/schema_class/my_schema_spec.rb +16 -0
- data/spec/generators/schema_class/my_schema_with_circular_reference_spec.rb +98 -0
- data/spec/generators/schema_class/my_schema_with_complex_types_spec.rb +237 -0
- data/spec/generators/schema_class_generator_spec.rb +283 -0
- data/spec/schemas/my_namespace/generated.rb +4 -4
- data/spec/schemas/my_namespace/my_long_namespace_schema.rb +2 -2
- data/spec/schemas/my_namespace/my_nested_schema.rb +3 -3
- data/spec/schemas/my_namespace/my_schema.rb +2 -2
- data/spec/schemas/my_namespace/my_schema_compound_key.rb +2 -2
- data/spec/schemas/my_namespace/my_schema_id_key.rb +2 -2
- data/spec/schemas/my_namespace/my_schema_key.rb +2 -2
- data/spec/schemas/my_namespace/my_schema_with_boolean.rb +2 -2
- data/spec/schemas/my_namespace/my_schema_with_circular_reference.rb +3 -3
- data/spec/schemas/my_namespace/my_schema_with_complex_type.rb +6 -6
- data/spec/schemas/my_namespace/my_schema_with_date_time.rb +2 -2
- data/spec/schemas/my_namespace/my_schema_with_id.rb +2 -2
- data/spec/schemas/my_namespace/my_schema_with_title.rb +2 -2
- data/spec/schemas/my_namespace/my_schema_with_union_type.rb +6 -6
- data/spec/schemas/my_namespace/my_schema_with_unique_id.rb +2 -2
- data/spec/schemas/my_namespace/my_updated_schema.rb +1 -1
- data/spec/schemas/my_namespace/request/create_topic.rb +2 -2
- data/spec/schemas/my_namespace/request/index.rb +2 -2
- data/spec/schemas/my_namespace/request/update_request.rb +2 -2
- data/spec/schemas/my_namespace/response/create_topic.rb +2 -2
- data/spec/schemas/my_namespace/response/index.rb +2 -2
- data/spec/schemas/my_namespace/response/update_response.rb +2 -2
- data/spec/schemas/my_namespace/wibble.rb +2 -2
- data/spec/schemas/my_namespace/widget.rb +2 -2
- data/spec/schemas/my_namespace/widget_the_second.rb +2 -2
- data/spec/schemas/my_namespace/widget_the_third.rb +2 -2
- data/spec/snapshots/consumers-no-nest.snap +1740 -0
- data/spec/snapshots/consumers.snap +1720 -0
- data/spec/snapshots/consumers_and_producers-no-nest.snap +1740 -0
- data/spec/snapshots/consumers_and_producers.snap +1720 -0
- data/spec/snapshots/consumers_circular-no-nest.snap +1740 -0
- data/spec/snapshots/consumers_circular.snap +1720 -0
- data/spec/snapshots/consumers_complex_types-no-nest.snap +1740 -0
- data/spec/snapshots/consumers_complex_types.snap +1720 -0
- data/spec/snapshots/consumers_nested-no-nest.snap +1740 -0
- data/spec/snapshots/consumers_nested.snap +1720 -0
- data/spec/snapshots/namespace_folders.snap +1800 -0
- data/spec/snapshots/namespace_map.snap +1800 -0
- data/spec/snapshots/producers_with_key-no-nest.snap +1740 -0
- data/spec/snapshots/producers_with_key.snap +1720 -0
- data/spec/spec_helper.rb +2 -2
- data/spec/utils/db_poller_spec.rb +1 -1
- data/spec/utils/deadlock_retry_spec.rb +57 -0
- metadata +27 -18
- data/lib/deimos/schema_class.rb +0 -72
- data/spec/schema_class_spec.rb +0 -65
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
|
-
# This file is autogenerated by
|
|
3
|
+
# This file is autogenerated by Deimos, Do NOT modify
|
|
4
4
|
module Schemas; module MyNamespace
|
|
5
5
|
### Primary Schema Class ###
|
|
6
6
|
# Autogenerated Schema for Record at com.my-namespace.MySchemaWithComplexTypes
|
|
7
|
-
class MySchemaWithComplexType <
|
|
7
|
+
class MySchemaWithComplexType < Deimos::SchemaClass::Record
|
|
8
8
|
|
|
9
9
|
### Secondary Schema Classes ###
|
|
10
10
|
# Autogenerated Schema for Record at com.my-namespace.ARecord
|
|
11
|
-
class ARecord <
|
|
11
|
+
class ARecord < Deimos::SchemaClass::Record
|
|
12
12
|
|
|
13
13
|
### Attribute Accessors ###
|
|
14
14
|
# @return [String]
|
|
@@ -40,7 +40,7 @@ module Schemas; module MyNamespace
|
|
|
40
40
|
end
|
|
41
41
|
|
|
42
42
|
# Autogenerated Schema for Enum at com.my-namespace.AnEnum
|
|
43
|
-
class AnEnum <
|
|
43
|
+
class AnEnum < Deimos::SchemaClass::Enum
|
|
44
44
|
# @override
|
|
45
45
|
def symbols
|
|
46
46
|
%w(sym1 sym2)
|
|
@@ -57,7 +57,7 @@ module Schemas; module MyNamespace
|
|
|
57
57
|
end
|
|
58
58
|
|
|
59
59
|
# Autogenerated Schema for Enum at com.my-namespace.AnotherEnum
|
|
60
|
-
class AnotherEnum <
|
|
60
|
+
class AnotherEnum < Deimos::SchemaClass::Enum
|
|
61
61
|
# @override
|
|
62
62
|
def symbols
|
|
63
63
|
%w(sym3 sym4)
|
|
@@ -74,7 +74,7 @@ module Schemas; module MyNamespace
|
|
|
74
74
|
end
|
|
75
75
|
|
|
76
76
|
# Autogenerated Schema for Enum at com.my-namespace.YetAnotherEnum
|
|
77
|
-
class YetAnotherEnum <
|
|
77
|
+
class YetAnotherEnum < Deimos::SchemaClass::Enum
|
|
78
78
|
# @override
|
|
79
79
|
def symbols
|
|
80
80
|
%w(sym5 sym6)
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
|
-
# This file is autogenerated by
|
|
3
|
+
# This file is autogenerated by Deimos, Do NOT modify
|
|
4
4
|
module Schemas; module MyNamespace
|
|
5
5
|
### Primary Schema Class ###
|
|
6
6
|
# Autogenerated Schema for Record at com.my-namespace.MySchemaWithDateTimes
|
|
7
|
-
class MySchemaWithDateTime <
|
|
7
|
+
class MySchemaWithDateTime < Deimos::SchemaClass::Record
|
|
8
8
|
|
|
9
9
|
### Attribute Accessors ###
|
|
10
10
|
# @return [String]
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
|
-
# This file is autogenerated by
|
|
3
|
+
# This file is autogenerated by Deimos, Do NOT modify
|
|
4
4
|
module Schemas; module MyNamespace
|
|
5
5
|
### Primary Schema Class ###
|
|
6
6
|
# Autogenerated Schema for Record at com.my-namespace.MySchemaWithId
|
|
7
|
-
class MySchemaWithId <
|
|
7
|
+
class MySchemaWithId < Deimos::SchemaClass::Record
|
|
8
8
|
|
|
9
9
|
### Attribute Accessors ###
|
|
10
10
|
# @return [String]
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
|
-
# This file is autogenerated by
|
|
3
|
+
# This file is autogenerated by Deimos, Do NOT modify
|
|
4
4
|
module Schemas; module MyNamespace
|
|
5
5
|
### Primary Schema Class ###
|
|
6
6
|
# Autogenerated Schema for Record at com.my-namespace.MySchemaWithTitle
|
|
7
|
-
class MySchemaWithTitle <
|
|
7
|
+
class MySchemaWithTitle < Deimos::SchemaClass::Record
|
|
8
8
|
|
|
9
9
|
### Attribute Accessors ###
|
|
10
10
|
# @return [String]
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
|
-
# This file is autogenerated by
|
|
3
|
+
# This file is autogenerated by Deimos, Do NOT modify
|
|
4
4
|
module Schemas; module MyNamespace
|
|
5
5
|
### Primary Schema Class ###
|
|
6
6
|
# Autogenerated Schema for Record at com.my-namespace.MySchemaWithUnionType
|
|
7
|
-
class MySchemaWithUnionType <
|
|
7
|
+
class MySchemaWithUnionType < Deimos::SchemaClass::Record
|
|
8
8
|
|
|
9
9
|
### Secondary Schema Classes ###
|
|
10
10
|
# Autogenerated Schema for Record at com.flipp.content.Record1
|
|
11
|
-
class Record1 <
|
|
11
|
+
class Record1 < Deimos::SchemaClass::Record
|
|
12
12
|
|
|
13
13
|
### Attribute Accessors ###
|
|
14
14
|
# @return [Hash<String, Integer>]
|
|
@@ -45,7 +45,7 @@ module Schemas; module MyNamespace
|
|
|
45
45
|
end
|
|
46
46
|
|
|
47
47
|
# Autogenerated Schema for Record at com.flipp.content.Record2
|
|
48
|
-
class Record2 <
|
|
48
|
+
class Record2 < Deimos::SchemaClass::Record
|
|
49
49
|
|
|
50
50
|
### Attribute Accessors ###
|
|
51
51
|
# @return [String]
|
|
@@ -77,7 +77,7 @@ module Schemas; module MyNamespace
|
|
|
77
77
|
end
|
|
78
78
|
|
|
79
79
|
# Autogenerated Schema for Record at com.flipp.content.Record3
|
|
80
|
-
class Record3 <
|
|
80
|
+
class Record3 < Deimos::SchemaClass::Record
|
|
81
81
|
|
|
82
82
|
### Attribute Accessors ###
|
|
83
83
|
# @return [Float]
|
|
@@ -109,7 +109,7 @@ module Schemas; module MyNamespace
|
|
|
109
109
|
end
|
|
110
110
|
|
|
111
111
|
# Autogenerated Schema for Record at com.flipp.content.Record4
|
|
112
|
-
class Record4 <
|
|
112
|
+
class Record4 < Deimos::SchemaClass::Record
|
|
113
113
|
|
|
114
114
|
### Attribute Accessors ###
|
|
115
115
|
# @return [Integer]
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
|
-
# This file is autogenerated by
|
|
3
|
+
# This file is autogenerated by Deimos, Do NOT modify
|
|
4
4
|
module Schemas; module MyNamespace
|
|
5
5
|
### Primary Schema Class ###
|
|
6
6
|
# Autogenerated Schema for Record at com.my-namespace.MySchemaWithUniqueId
|
|
7
|
-
class MySchemaWithUniqueId <
|
|
7
|
+
class MySchemaWithUniqueId < Deimos::SchemaClass::Record
|
|
8
8
|
|
|
9
9
|
### Attribute Accessors ###
|
|
10
10
|
# @return [Integer]
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
|
-
# This file is autogenerated by
|
|
3
|
+
# This file is autogenerated by Deimos, Do NOT modify
|
|
4
4
|
module Schemas; module Com; module MyNamespace
|
|
5
5
|
### Primary Schema Class ###
|
|
6
6
|
# Autogenerated Schema for Record at com.my-namespace.MySchema
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
|
-
# This file is autogenerated by
|
|
3
|
+
# This file is autogenerated by Deimos, Do NOT modify
|
|
4
4
|
module Schemas; module MyNamespace; module Request
|
|
5
5
|
### Primary Schema Class ###
|
|
6
6
|
# Autogenerated Schema for Record at com.my-namespace.request.CreateTopic
|
|
7
|
-
class CreateTopic <
|
|
7
|
+
class CreateTopic < Deimos::SchemaClass::Record
|
|
8
8
|
|
|
9
9
|
### Attribute Accessors ###
|
|
10
10
|
# @return [String]
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
|
-
# This file is autogenerated by
|
|
3
|
+
# This file is autogenerated by Deimos, Do NOT modify
|
|
4
4
|
module Schemas; module MyNamespace; module Request
|
|
5
5
|
### Primary Schema Class ###
|
|
6
6
|
# Autogenerated Schema for Record at com.my-namespace.request.Index
|
|
7
|
-
class Index <
|
|
7
|
+
class Index < Deimos::SchemaClass::Record
|
|
8
8
|
|
|
9
9
|
### Attribute Accessors ###
|
|
10
10
|
# @return [String]
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
|
-
# This file is autogenerated by
|
|
3
|
+
# This file is autogenerated by Deimos, Do NOT modify
|
|
4
4
|
module Schemas; module MyNamespace; module Request
|
|
5
5
|
### Primary Schema Class ###
|
|
6
6
|
# Autogenerated Schema for Record at com.my-namespace.request.UpdateRequest
|
|
7
|
-
class UpdateRequest <
|
|
7
|
+
class UpdateRequest < Deimos::SchemaClass::Record
|
|
8
8
|
|
|
9
9
|
### Attribute Accessors ###
|
|
10
10
|
# @return [String]
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
|
-
# This file is autogenerated by
|
|
3
|
+
# This file is autogenerated by Deimos, Do NOT modify
|
|
4
4
|
module Schemas; module MyNamespace; module Response
|
|
5
5
|
### Primary Schema Class ###
|
|
6
6
|
# Autogenerated Schema for Record at com.my-namespace.response.CreateTopic
|
|
7
|
-
class CreateTopic <
|
|
7
|
+
class CreateTopic < Deimos::SchemaClass::Record
|
|
8
8
|
|
|
9
9
|
### Attribute Accessors ###
|
|
10
10
|
# @return [String]
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
|
-
# This file is autogenerated by
|
|
3
|
+
# This file is autogenerated by Deimos, Do NOT modify
|
|
4
4
|
module Schemas; module MyNamespace; module Response
|
|
5
5
|
### Primary Schema Class ###
|
|
6
6
|
# Autogenerated Schema for Record at com.my-namespace.response.Index
|
|
7
|
-
class Index <
|
|
7
|
+
class Index < Deimos::SchemaClass::Record
|
|
8
8
|
|
|
9
9
|
### Attribute Accessors ###
|
|
10
10
|
# @return [String]
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
|
-
# This file is autogenerated by
|
|
3
|
+
# This file is autogenerated by Deimos, Do NOT modify
|
|
4
4
|
module Schemas; module MyNamespace; module Response
|
|
5
5
|
### Primary Schema Class ###
|
|
6
6
|
# Autogenerated Schema for Record at com.my-namespace.response.UpdateResponse
|
|
7
|
-
class UpdateResponse <
|
|
7
|
+
class UpdateResponse < Deimos::SchemaClass::Record
|
|
8
8
|
|
|
9
9
|
### Attribute Accessors ###
|
|
10
10
|
# @return [String]
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
|
-
# This file is autogenerated by
|
|
3
|
+
# This file is autogenerated by Deimos, Do NOT modify
|
|
4
4
|
module Schemas; module MyNamespace
|
|
5
5
|
### Primary Schema Class ###
|
|
6
6
|
# Autogenerated Schema for Record at com.my-namespace.Wibble
|
|
7
|
-
class Wibble <
|
|
7
|
+
class Wibble < Deimos::SchemaClass::Record
|
|
8
8
|
|
|
9
9
|
### Attribute Accessors ###
|
|
10
10
|
# @return [Integer]
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
|
-
# This file is autogenerated by
|
|
3
|
+
# This file is autogenerated by Deimos, Do NOT modify
|
|
4
4
|
module Schemas; module MyNamespace
|
|
5
5
|
### Primary Schema Class ###
|
|
6
6
|
# Autogenerated Schema for Record at com.my-namespace.Widget
|
|
7
|
-
class Widget <
|
|
7
|
+
class Widget < Deimos::SchemaClass::Record
|
|
8
8
|
|
|
9
9
|
### Attribute Accessors ###
|
|
10
10
|
# @return [Integer]
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
|
-
# This file is autogenerated by
|
|
3
|
+
# This file is autogenerated by Deimos, Do NOT modify
|
|
4
4
|
module Schemas; module MyNamespace
|
|
5
5
|
### Primary Schema Class ###
|
|
6
6
|
# Autogenerated Schema for Record at com.my-namespace.WidgetTheSecond
|
|
7
|
-
class WidgetTheSecond <
|
|
7
|
+
class WidgetTheSecond < Deimos::SchemaClass::Record
|
|
8
8
|
|
|
9
9
|
### Attribute Accessors ###
|
|
10
10
|
# @return [Integer]
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
|
-
# This file is autogenerated by
|
|
3
|
+
# This file is autogenerated by Deimos, Do NOT modify
|
|
4
4
|
module Schemas; module MyNamespace
|
|
5
5
|
### Primary Schema Class ###
|
|
6
6
|
# Autogenerated Schema for Record at com.my-namespace.WidgetTheThird
|
|
7
|
-
class WidgetTheThird <
|
|
7
|
+
class WidgetTheThird < Deimos::SchemaClass::Record
|
|
8
8
|
|
|
9
9
|
### Attribute Accessors ###
|
|
10
10
|
# @return [String]
|