deimos-ruby 1.10.2 → 1.12.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 +19 -0
- data/Gemfile.lock +8 -8
- data/README.md +150 -16
- data/deimos-ruby.gemspec +1 -1
- data/docs/CONFIGURATION.md +4 -0
- data/lib/deimos/active_record_consume/batch_consumption.rb +1 -1
- data/lib/deimos/active_record_consume/message_consumption.rb +4 -3
- data/lib/deimos/active_record_consumer.rb +2 -2
- data/lib/deimos/active_record_producer.rb +3 -0
- data/lib/deimos/config/configuration.rb +29 -0
- data/lib/deimos/consume/batch_consumption.rb +2 -2
- data/lib/deimos/consume/message_consumption.rb +2 -2
- data/lib/deimos/consumer.rb +10 -0
- data/lib/deimos/producer.rb +4 -3
- data/lib/deimos/schema_backends/avro_base.rb +64 -1
- data/lib/deimos/schema_backends/avro_schema_registry.rb +1 -1
- data/lib/deimos/schema_backends/base.rb +18 -2
- data/lib/deimos/schema_class/base.rb +67 -0
- data/lib/deimos/schema_class/enum.rb +24 -0
- data/lib/deimos/schema_class/record.rb +59 -0
- data/lib/deimos/shared_config.rb +5 -0
- data/lib/deimos/test_helpers.rb +70 -17
- data/lib/deimos/utils/schema_class.rb +29 -0
- data/lib/deimos/version.rb +1 -1
- data/lib/deimos.rb +3 -0
- data/lib/generators/deimos/schema_class/templates/schema_class.rb.tt +15 -0
- data/lib/generators/deimos/schema_class/templates/schema_enum.rb.tt +21 -0
- data/lib/generators/deimos/schema_class/templates/schema_record.rb.tt +65 -0
- data/lib/generators/deimos/schema_class_generator.rb +247 -0
- data/lib/tasks/deimos.rake +8 -0
- data/spec/active_record_batch_consumer_spec.rb +120 -110
- data/spec/active_record_consumer_spec.rb +97 -88
- data/spec/active_record_producer_spec.rb +38 -27
- data/spec/batch_consumer_spec.rb +37 -28
- data/spec/config/configuration_spec.rb +10 -3
- data/spec/consumer_spec.rb +94 -83
- data/spec/generators/active_record_generator_spec.rb +1 -0
- data/spec/generators/schema_class/my_schema_with_complex_types_spec.rb +206 -0
- data/spec/generators/schema_class_generator_spec.rb +186 -0
- data/spec/producer_spec.rb +110 -0
- data/spec/schema_classes/generated.rb +156 -0
- data/spec/schema_classes/my_nested_schema.rb +114 -0
- data/spec/schema_classes/my_schema.rb +53 -0
- data/spec/schema_classes/my_schema_key.rb +35 -0
- data/spec/schema_classes/my_schema_with_complex_types.rb +172 -0
- data/spec/schemas/com/my-namespace/Generated.avsc +6 -0
- data/spec/schemas/com/my-namespace/MySchemaWithComplexTypes.avsc +95 -0
- data/spec/spec_helper.rb +6 -1
- metadata +28 -4
@@ -0,0 +1,114 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
# This file is autogenerated by Deimos, Do NOT modify
|
4
|
+
module Schemas
|
5
|
+
### Secondary Schema Classes ###
|
6
|
+
# Autogenerated Schema for Record at com.my-namespace.MyNestedRecord
|
7
|
+
class MyNestedRecord < Deimos::SchemaClass::Record
|
8
|
+
### Attribute Accessors ###
|
9
|
+
# @param value [Integer]
|
10
|
+
attr_accessor :some_int
|
11
|
+
# @param value [Float]
|
12
|
+
attr_accessor :some_float
|
13
|
+
# @param value [String]
|
14
|
+
attr_accessor :some_string
|
15
|
+
# @param value [nil, Integer]
|
16
|
+
attr_accessor :some_optional_int
|
17
|
+
|
18
|
+
# @override
|
19
|
+
def initialize(some_int: nil,
|
20
|
+
some_float: nil,
|
21
|
+
some_string: nil,
|
22
|
+
some_optional_int: nil)
|
23
|
+
super
|
24
|
+
self.some_int = some_int
|
25
|
+
self.some_float = some_float
|
26
|
+
self.some_string = some_string
|
27
|
+
self.some_optional_int = some_optional_int
|
28
|
+
end
|
29
|
+
|
30
|
+
# @override
|
31
|
+
def schema
|
32
|
+
'MyNestedRecord'
|
33
|
+
end
|
34
|
+
|
35
|
+
# @override
|
36
|
+
def namespace
|
37
|
+
'com.my-namespace'
|
38
|
+
end
|
39
|
+
|
40
|
+
# @override
|
41
|
+
def to_h
|
42
|
+
{
|
43
|
+
'some_int' => @some_int,
|
44
|
+
'some_float' => @some_float,
|
45
|
+
'some_string' => @some_string,
|
46
|
+
'some_optional_int' => @some_optional_int
|
47
|
+
}
|
48
|
+
end
|
49
|
+
end
|
50
|
+
|
51
|
+
### Primary Schema Class ###
|
52
|
+
# Autogenerated Schema for Record at com.my-namespace.MyNestedSchema
|
53
|
+
class MyNestedSchema < Deimos::SchemaClass::Record
|
54
|
+
### Attribute Readers ###
|
55
|
+
# @return [MyNestedRecord]
|
56
|
+
attr_reader :some_nested_record
|
57
|
+
# @return [nil, MyNestedRecord]
|
58
|
+
attr_reader :some_optional_record
|
59
|
+
|
60
|
+
### Attribute Accessors ###
|
61
|
+
# @param value [String]
|
62
|
+
attr_accessor :test_id
|
63
|
+
# @param value [Float]
|
64
|
+
attr_accessor :test_float
|
65
|
+
# @param values [Array<String>]
|
66
|
+
attr_accessor :test_array
|
67
|
+
|
68
|
+
### Attribute Writers ###
|
69
|
+
# @param value [MyNestedRecord]
|
70
|
+
def some_nested_record=(value)
|
71
|
+
@some_nested_record = MyNestedRecord.initialize_from_value(value)
|
72
|
+
end
|
73
|
+
|
74
|
+
# @param value [nil, MyNestedRecord]
|
75
|
+
def some_optional_record=(value)
|
76
|
+
@some_optional_record = MyNestedRecord.initialize_from_value(value)
|
77
|
+
end
|
78
|
+
|
79
|
+
# @override
|
80
|
+
def initialize(test_id: nil,
|
81
|
+
test_float: nil,
|
82
|
+
test_array: nil,
|
83
|
+
some_nested_record: nil,
|
84
|
+
some_optional_record: nil)
|
85
|
+
super
|
86
|
+
self.test_id = test_id
|
87
|
+
self.test_float = test_float
|
88
|
+
self.test_array = test_array
|
89
|
+
self.some_nested_record = some_nested_record
|
90
|
+
self.some_optional_record = some_optional_record
|
91
|
+
end
|
92
|
+
|
93
|
+
# @override
|
94
|
+
def schema
|
95
|
+
'MyNestedSchema'
|
96
|
+
end
|
97
|
+
|
98
|
+
# @override
|
99
|
+
def namespace
|
100
|
+
'com.my-namespace'
|
101
|
+
end
|
102
|
+
|
103
|
+
# @override
|
104
|
+
def to_h
|
105
|
+
{
|
106
|
+
'test_id' => @test_id,
|
107
|
+
'test_float' => @test_float,
|
108
|
+
'test_array' => @test_array,
|
109
|
+
'some_nested_record' => @some_nested_record&.to_h,
|
110
|
+
'some_optional_record' => @some_optional_record&.to_h
|
111
|
+
}
|
112
|
+
end
|
113
|
+
end
|
114
|
+
end
|
@@ -0,0 +1,53 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
# This file is autogenerated by Deimos, Do NOT modify
|
4
|
+
module Schemas
|
5
|
+
### Primary Schema Class ###
|
6
|
+
# Autogenerated Schema for Record at com.my-namespace.MySchema
|
7
|
+
class MySchema < Deimos::SchemaClass::Record
|
8
|
+
### Attribute Readers ###
|
9
|
+
# @return [MySchemaKey]
|
10
|
+
attr_reader :payload_key
|
11
|
+
|
12
|
+
### Attribute Accessors ###
|
13
|
+
# @param value [String]
|
14
|
+
attr_accessor :test_id
|
15
|
+
# @param value [Integer]
|
16
|
+
attr_accessor :some_int
|
17
|
+
|
18
|
+
### Attribute Writers ###
|
19
|
+
# @param value [MySchemaKey]
|
20
|
+
def payload_key=(value)
|
21
|
+
@payload_key = MySchemaKey.initialize_from_value(value)
|
22
|
+
end
|
23
|
+
|
24
|
+
# @override
|
25
|
+
def initialize(test_id: nil,
|
26
|
+
some_int: nil,
|
27
|
+
payload_key: nil)
|
28
|
+
super
|
29
|
+
self.test_id = test_id
|
30
|
+
self.some_int = some_int
|
31
|
+
self.payload_key = payload_key
|
32
|
+
end
|
33
|
+
|
34
|
+
# @override
|
35
|
+
def schema
|
36
|
+
'MySchema'
|
37
|
+
end
|
38
|
+
|
39
|
+
# @override
|
40
|
+
def namespace
|
41
|
+
'com.my-namespace'
|
42
|
+
end
|
43
|
+
|
44
|
+
# @override
|
45
|
+
def to_h
|
46
|
+
{
|
47
|
+
'test_id' => @test_id,
|
48
|
+
'some_int' => @some_int,
|
49
|
+
'payload_key' => @payload_key&.to_h
|
50
|
+
}
|
51
|
+
end
|
52
|
+
end
|
53
|
+
end
|
@@ -0,0 +1,35 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
# This file is autogenerated by Deimos, Do NOT modify
|
4
|
+
module Schemas
|
5
|
+
### Primary Schema Class ###
|
6
|
+
# Autogenerated Schema for Record at com.my-namespace.MySchema-key
|
7
|
+
class MySchemaKey < Deimos::SchemaClass::Record
|
8
|
+
### Attribute Accessors ###
|
9
|
+
# @param value [String]
|
10
|
+
attr_accessor :test_id
|
11
|
+
|
12
|
+
# @override
|
13
|
+
def initialize(test_id: nil)
|
14
|
+
super
|
15
|
+
self.test_id = test_id
|
16
|
+
end
|
17
|
+
|
18
|
+
# @override
|
19
|
+
def schema
|
20
|
+
'MySchema-key'
|
21
|
+
end
|
22
|
+
|
23
|
+
# @override
|
24
|
+
def namespace
|
25
|
+
'com.my-namespace'
|
26
|
+
end
|
27
|
+
|
28
|
+
# @override
|
29
|
+
def to_h
|
30
|
+
{
|
31
|
+
'test_id' => @test_id
|
32
|
+
}
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
@@ -0,0 +1,172 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
# This file is autogenerated by Deimos, Do NOT modify
|
4
|
+
module Schemas
|
5
|
+
### Secondary Schema Classes ###
|
6
|
+
# Autogenerated Schema for Record at com.my-namespace.ARecord
|
7
|
+
class ARecord < Deimos::SchemaClass::Record
|
8
|
+
### Attribute Accessors ###
|
9
|
+
# @param value [String]
|
10
|
+
attr_accessor :a_record_field
|
11
|
+
|
12
|
+
# @override
|
13
|
+
def initialize(a_record_field: nil)
|
14
|
+
super
|
15
|
+
self.a_record_field = a_record_field
|
16
|
+
end
|
17
|
+
|
18
|
+
# @override
|
19
|
+
def schema
|
20
|
+
'ARecord'
|
21
|
+
end
|
22
|
+
|
23
|
+
# @override
|
24
|
+
def namespace
|
25
|
+
'com.my-namespace'
|
26
|
+
end
|
27
|
+
|
28
|
+
# @override
|
29
|
+
def to_h
|
30
|
+
{
|
31
|
+
'a_record_field' => @a_record_field
|
32
|
+
}
|
33
|
+
end
|
34
|
+
end
|
35
|
+
|
36
|
+
# Autogenerated Schema for Enum at com.my-namespace.AnEnum
|
37
|
+
class AnEnum < Deimos::SchemaClass::Enum
|
38
|
+
# @return ['sym1', 'sym2']
|
39
|
+
attr_accessor :an_enum
|
40
|
+
|
41
|
+
# :nodoc:
|
42
|
+
def initialize(an_enum)
|
43
|
+
super
|
44
|
+
self.an_enum = an_enum
|
45
|
+
end
|
46
|
+
|
47
|
+
# @override
|
48
|
+
def symbols
|
49
|
+
%w(sym1 sym2)
|
50
|
+
end
|
51
|
+
|
52
|
+
# @override
|
53
|
+
def to_h
|
54
|
+
@an_enum
|
55
|
+
end
|
56
|
+
end
|
57
|
+
|
58
|
+
### Primary Schema Class ###
|
59
|
+
# Autogenerated Schema for Record at com.my-namespace.MySchemaWithComplexTypes
|
60
|
+
class MySchemaWithComplexTypes < Deimos::SchemaClass::Record
|
61
|
+
### Attribute Readers ###
|
62
|
+
# @return [ARecord]
|
63
|
+
attr_reader :some_record
|
64
|
+
# @return [nil, ARecord]
|
65
|
+
attr_reader :some_optional_record
|
66
|
+
# @return [Array<ARecord>]
|
67
|
+
attr_reader :some_record_array
|
68
|
+
# @return [Hash<String, ARecord>]
|
69
|
+
attr_reader :some_record_map
|
70
|
+
# @return [Array<AnEnum>]
|
71
|
+
attr_reader :some_enum_array
|
72
|
+
|
73
|
+
### Attribute Accessors ###
|
74
|
+
# @param value [String]
|
75
|
+
attr_accessor :test_id
|
76
|
+
# @param value [Float]
|
77
|
+
attr_accessor :test_float
|
78
|
+
# @param values [Array<String>]
|
79
|
+
attr_accessor :test_string_array
|
80
|
+
# @param values [Array<Integer>]
|
81
|
+
attr_accessor :test_int_array
|
82
|
+
# @param value [Integer, nil]
|
83
|
+
attr_accessor :test_optional_int
|
84
|
+
# @param values [Hash<String, Integer>]
|
85
|
+
attr_accessor :some_integer_map
|
86
|
+
|
87
|
+
### Attribute Writers ###
|
88
|
+
# @param value [ARecord]
|
89
|
+
def some_record=(value)
|
90
|
+
@some_record = ARecord.initialize_from_value(value)
|
91
|
+
end
|
92
|
+
|
93
|
+
# @param value [nil, ARecord]
|
94
|
+
def some_optional_record=(value)
|
95
|
+
@some_optional_record = ARecord.initialize_from_value(value)
|
96
|
+
end
|
97
|
+
|
98
|
+
# @param values [Array<ARecord>]
|
99
|
+
def some_record_array=(values)
|
100
|
+
@some_record_array = values.map do |value|
|
101
|
+
ARecord.initialize_from_value(value)
|
102
|
+
end
|
103
|
+
end
|
104
|
+
|
105
|
+
# @param values [Hash<String, ARecord>]
|
106
|
+
def some_record_map=(values)
|
107
|
+
@some_record_map = values.transform_values do |value|
|
108
|
+
ARecord.initialize_from_value(value)
|
109
|
+
end
|
110
|
+
end
|
111
|
+
|
112
|
+
# @param values [Array<AnEnum>]
|
113
|
+
def some_enum_array=(values)
|
114
|
+
@some_enum_array = values.map do |value|
|
115
|
+
AnEnum.initialize_from_value(value)
|
116
|
+
end
|
117
|
+
end
|
118
|
+
|
119
|
+
# @override
|
120
|
+
def initialize(test_id: nil,
|
121
|
+
test_float: nil,
|
122
|
+
test_string_array: ["test"],
|
123
|
+
test_int_array: [123],
|
124
|
+
test_optional_int: 123,
|
125
|
+
some_integer_map: {"abc"=>123},
|
126
|
+
some_record: {"a_record_field"=>"Test String"},
|
127
|
+
some_optional_record: nil,
|
128
|
+
some_record_array: nil,
|
129
|
+
some_record_map: nil,
|
130
|
+
some_enum_array: nil)
|
131
|
+
super
|
132
|
+
self.test_id = test_id
|
133
|
+
self.test_float = test_float
|
134
|
+
self.test_string_array = test_string_array
|
135
|
+
self.test_int_array = test_int_array
|
136
|
+
self.test_optional_int = test_optional_int
|
137
|
+
self.some_integer_map = some_integer_map
|
138
|
+
self.some_record = some_record
|
139
|
+
self.some_optional_record = some_optional_record
|
140
|
+
self.some_record_array = some_record_array
|
141
|
+
self.some_record_map = some_record_map
|
142
|
+
self.some_enum_array = some_enum_array
|
143
|
+
end
|
144
|
+
|
145
|
+
# @override
|
146
|
+
def schema
|
147
|
+
'MySchemaWithComplexTypes'
|
148
|
+
end
|
149
|
+
|
150
|
+
# @override
|
151
|
+
def namespace
|
152
|
+
'com.my-namespace'
|
153
|
+
end
|
154
|
+
|
155
|
+
# @override
|
156
|
+
def to_h
|
157
|
+
{
|
158
|
+
'test_id' => @test_id,
|
159
|
+
'test_float' => @test_float,
|
160
|
+
'test_string_array' => @test_string_array,
|
161
|
+
'test_int_array' => @test_int_array,
|
162
|
+
'test_optional_int' => @test_optional_int,
|
163
|
+
'some_integer_map' => @some_integer_map,
|
164
|
+
'some_record' => @some_record&.to_h,
|
165
|
+
'some_optional_record' => @some_optional_record&.to_h,
|
166
|
+
'some_record_array' => @some_record_array.map { |v| v&.to_h },
|
167
|
+
'some_record_map' => @some_record_map.transform_values { |v| v&.to_h },
|
168
|
+
'some_enum_array' => @some_enum_array.map { |v| v&.to_h }
|
169
|
+
}
|
170
|
+
end
|
171
|
+
end
|
172
|
+
end
|
@@ -0,0 +1,95 @@
|
|
1
|
+
{
|
2
|
+
"namespace": "com.my-namespace",
|
3
|
+
"name": "MySchemaWithComplexTypes",
|
4
|
+
"type": "record",
|
5
|
+
"doc": "Test schema",
|
6
|
+
"fields": [
|
7
|
+
{
|
8
|
+
"name": "test_id",
|
9
|
+
"type": "string",
|
10
|
+
"doc": "test string"
|
11
|
+
},
|
12
|
+
{
|
13
|
+
"name": "test_float",
|
14
|
+
"type": "float",
|
15
|
+
"doc": "test float"
|
16
|
+
},
|
17
|
+
{
|
18
|
+
"name": "test_string_array",
|
19
|
+
"type": {
|
20
|
+
"type": "array",
|
21
|
+
"items": "string"
|
22
|
+
},
|
23
|
+
"default": ["test"]
|
24
|
+
},
|
25
|
+
{
|
26
|
+
"name": "test_int_array",
|
27
|
+
"type": {
|
28
|
+
"type": "array",
|
29
|
+
"items": "int"
|
30
|
+
},
|
31
|
+
"default": [123]
|
32
|
+
},
|
33
|
+
{
|
34
|
+
"name": "test_optional_int",
|
35
|
+
"type": [ "int", "null" ],
|
36
|
+
"default": 123
|
37
|
+
},
|
38
|
+
{
|
39
|
+
"name": "some_integer_map",
|
40
|
+
"doc": "some record map",
|
41
|
+
"type": {
|
42
|
+
"type": "map",
|
43
|
+
"values": "int"
|
44
|
+
},
|
45
|
+
"default": {"abc": 123}
|
46
|
+
},
|
47
|
+
{
|
48
|
+
"name": "some_record",
|
49
|
+
"type": {
|
50
|
+
"type": "record",
|
51
|
+
"name": "ARecord",
|
52
|
+
"fields": [
|
53
|
+
{
|
54
|
+
"name": "a_record_field",
|
55
|
+
"type": "string"
|
56
|
+
}
|
57
|
+
]
|
58
|
+
},
|
59
|
+
"default": {"a_record_field": "Test String"}
|
60
|
+
},
|
61
|
+
{
|
62
|
+
"name": "some_optional_record",
|
63
|
+
"doc": "some optional record",
|
64
|
+
"type": [ "null", "ARecord" ],
|
65
|
+
"default": null
|
66
|
+
},
|
67
|
+
{
|
68
|
+
"name": "some_record_array",
|
69
|
+
"doc": "some record array",
|
70
|
+
"type": {
|
71
|
+
"type": "array",
|
72
|
+
"items": "ARecord"
|
73
|
+
}
|
74
|
+
},
|
75
|
+
{
|
76
|
+
"name": "some_record_map",
|
77
|
+
"doc": "some record map",
|
78
|
+
"type": {
|
79
|
+
"type": "map",
|
80
|
+
"values": "ARecord"
|
81
|
+
}
|
82
|
+
},
|
83
|
+
{
|
84
|
+
"name": "some_enum_array",
|
85
|
+
"type": {
|
86
|
+
"type": "array",
|
87
|
+
"items": {
|
88
|
+
"type": "enum",
|
89
|
+
"name": "AnEnum",
|
90
|
+
"symbols": ["sym1", "sym2"]
|
91
|
+
}
|
92
|
+
}
|
93
|
+
}
|
94
|
+
]
|
95
|
+
}
|
data/spec/spec_helper.rb
CHANGED
@@ -13,6 +13,10 @@ require 'activerecord-import'
|
|
13
13
|
require 'handlers/my_batch_consumer'
|
14
14
|
require 'handlers/my_consumer'
|
15
15
|
require 'rspec/rails'
|
16
|
+
Dir['./spec/schema_classes/**/*.rb'].sort.each { |f| require f }
|
17
|
+
|
18
|
+
# Constants used for consumer specs
|
19
|
+
SCHEMA_CLASS_SETTINGS = { off: false, on: true }.freeze
|
16
20
|
|
17
21
|
class DeimosApp < Rails::Application
|
18
22
|
end
|
@@ -100,7 +104,7 @@ module DbConfigs
|
|
100
104
|
DB_OPTIONS.each do |options|
|
101
105
|
describe subject, :integration, db_config: options do
|
102
106
|
|
103
|
-
include_context
|
107
|
+
include_context('with DB')
|
104
108
|
describe options[:adapter] do # rubocop:disable RSpec/EmptyExampleGroup
|
105
109
|
self.instance_eval(&block)
|
106
110
|
end
|
@@ -192,6 +196,7 @@ RSpec.configure do |config|
|
|
192
196
|
deimos_config.logger = Logger.new('/dev/null')
|
193
197
|
deimos_config.logger.level = Logger::INFO
|
194
198
|
deimos_config.schema.backend = :avro_validation
|
199
|
+
deimos_config.schema.generated_class_path = 'spec/schema_classes'
|
195
200
|
end
|
196
201
|
end
|
197
202
|
|
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.
|
4
|
+
version: 1.12.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: 2021-
|
11
|
+
date: 2021-11-01 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: avro_turf
|
@@ -302,14 +302,14 @@ dependencies:
|
|
302
302
|
requirements:
|
303
303
|
- - '='
|
304
304
|
- !ruby/object:Gem::Version
|
305
|
-
version: 0.
|
305
|
+
version: 0.89.0
|
306
306
|
type: :development
|
307
307
|
prerelease: false
|
308
308
|
version_requirements: !ruby/object:Gem::Requirement
|
309
309
|
requirements:
|
310
310
|
- - '='
|
311
311
|
- !ruby/object:Gem::Version
|
312
|
-
version: 0.
|
312
|
+
version: 0.89.0
|
313
313
|
- !ruby/object:Gem::Dependency
|
314
314
|
name: rubocop-rspec
|
315
315
|
requirement: !ruby/object:Gem::Requirement
|
@@ -409,6 +409,9 @@ files:
|
|
409
409
|
- lib/deimos/schema_backends/avro_validation.rb
|
410
410
|
- lib/deimos/schema_backends/base.rb
|
411
411
|
- lib/deimos/schema_backends/mock.rb
|
412
|
+
- lib/deimos/schema_class/base.rb
|
413
|
+
- lib/deimos/schema_class/enum.rb
|
414
|
+
- lib/deimos/schema_class/record.rb
|
412
415
|
- lib/deimos/shared_config.rb
|
413
416
|
- lib/deimos/test_helpers.rb
|
414
417
|
- lib/deimos/tracing/datadog.rb
|
@@ -419,6 +422,7 @@ files:
|
|
419
422
|
- lib/deimos/utils/deadlock_retry.rb
|
420
423
|
- lib/deimos/utils/inline_consumer.rb
|
421
424
|
- lib/deimos/utils/lag_reporter.rb
|
425
|
+
- lib/deimos/utils/schema_class.rb
|
422
426
|
- lib/deimos/utils/schema_controller_mixin.rb
|
423
427
|
- lib/deimos/version.rb
|
424
428
|
- lib/generators/deimos/active_record/templates/migration.rb.tt
|
@@ -430,6 +434,10 @@ files:
|
|
430
434
|
- lib/generators/deimos/db_poller/templates/migration
|
431
435
|
- lib/generators/deimos/db_poller/templates/rails3_migration
|
432
436
|
- lib/generators/deimos/db_poller_generator.rb
|
437
|
+
- lib/generators/deimos/schema_class/templates/schema_class.rb.tt
|
438
|
+
- lib/generators/deimos/schema_class/templates/schema_enum.rb.tt
|
439
|
+
- lib/generators/deimos/schema_class/templates/schema_record.rb.tt
|
440
|
+
- lib/generators/deimos/schema_class_generator.rb
|
433
441
|
- lib/tasks/deimos.rake
|
434
442
|
- spec/active_record_batch_consumer_spec.rb
|
435
443
|
- spec/active_record_consume/batch_slicer_spec.rb
|
@@ -445,6 +453,8 @@ files:
|
|
445
453
|
- spec/consumer_spec.rb
|
446
454
|
- spec/deimos_spec.rb
|
447
455
|
- spec/generators/active_record_generator_spec.rb
|
456
|
+
- spec/generators/schema_class/my_schema_with_complex_types_spec.rb
|
457
|
+
- spec/generators/schema_class_generator_spec.rb
|
448
458
|
- spec/handlers/my_batch_consumer.rb
|
449
459
|
- spec/handlers/my_consumer.rb
|
450
460
|
- spec/kafka_listener_spec.rb
|
@@ -460,12 +470,18 @@ files:
|
|
460
470
|
- spec/schema_backends/avro_schema_registry_spec.rb
|
461
471
|
- spec/schema_backends/avro_validation_spec.rb
|
462
472
|
- spec/schema_backends/base_spec.rb
|
473
|
+
- spec/schema_classes/generated.rb
|
474
|
+
- spec/schema_classes/my_nested_schema.rb
|
475
|
+
- spec/schema_classes/my_schema.rb
|
476
|
+
- spec/schema_classes/my_schema_key.rb
|
477
|
+
- spec/schema_classes/my_schema_with_complex_types.rb
|
463
478
|
- spec/schemas/com/my-namespace/Generated.avsc
|
464
479
|
- spec/schemas/com/my-namespace/MyNestedSchema.avsc
|
465
480
|
- spec/schemas/com/my-namespace/MySchema-key.avsc
|
466
481
|
- spec/schemas/com/my-namespace/MySchema.avsc
|
467
482
|
- spec/schemas/com/my-namespace/MySchemaCompound-key.avsc
|
468
483
|
- spec/schemas/com/my-namespace/MySchemaWithBooleans.avsc
|
484
|
+
- spec/schemas/com/my-namespace/MySchemaWithComplexTypes.avsc
|
469
485
|
- spec/schemas/com/my-namespace/MySchemaWithDateTimes.avsc
|
470
486
|
- spec/schemas/com/my-namespace/MySchemaWithId.avsc
|
471
487
|
- spec/schemas/com/my-namespace/MySchemaWithUniqueId.avsc
|
@@ -528,6 +544,8 @@ test_files:
|
|
528
544
|
- spec/consumer_spec.rb
|
529
545
|
- spec/deimos_spec.rb
|
530
546
|
- spec/generators/active_record_generator_spec.rb
|
547
|
+
- spec/generators/schema_class/my_schema_with_complex_types_spec.rb
|
548
|
+
- spec/generators/schema_class_generator_spec.rb
|
531
549
|
- spec/handlers/my_batch_consumer.rb
|
532
550
|
- spec/handlers/my_consumer.rb
|
533
551
|
- spec/kafka_listener_spec.rb
|
@@ -543,12 +561,18 @@ test_files:
|
|
543
561
|
- spec/schema_backends/avro_schema_registry_spec.rb
|
544
562
|
- spec/schema_backends/avro_validation_spec.rb
|
545
563
|
- spec/schema_backends/base_spec.rb
|
564
|
+
- spec/schema_classes/generated.rb
|
565
|
+
- spec/schema_classes/my_nested_schema.rb
|
566
|
+
- spec/schema_classes/my_schema.rb
|
567
|
+
- spec/schema_classes/my_schema_key.rb
|
568
|
+
- spec/schema_classes/my_schema_with_complex_types.rb
|
546
569
|
- spec/schemas/com/my-namespace/Generated.avsc
|
547
570
|
- spec/schemas/com/my-namespace/MyNestedSchema.avsc
|
548
571
|
- spec/schemas/com/my-namespace/MySchema-key.avsc
|
549
572
|
- spec/schemas/com/my-namespace/MySchema.avsc
|
550
573
|
- spec/schemas/com/my-namespace/MySchemaCompound-key.avsc
|
551
574
|
- spec/schemas/com/my-namespace/MySchemaWithBooleans.avsc
|
575
|
+
- spec/schemas/com/my-namespace/MySchemaWithComplexTypes.avsc
|
552
576
|
- spec/schemas/com/my-namespace/MySchemaWithDateTimes.avsc
|
553
577
|
- spec/schemas/com/my-namespace/MySchemaWithId.avsc
|
554
578
|
- spec/schemas/com/my-namespace/MySchemaWithUniqueId.avsc
|