avro-gen-ruby 0.1.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 +7 -0
- data/.github/workflows/ci.yml +34 -0
- data/.github/workflows/release.yml +31 -0
- data/.gitignore +6 -0
- data/.rspec +1 -0
- data/.rubocop.yml +100 -0
- data/Gemfile +5 -0
- data/LICENSE +21 -0
- data/README.md +61 -0
- data/Rakefile +11 -0
- data/avro-gen-ruby.gemspec +32 -0
- data/lib/avro_gen/avro_parser.rb +64 -0
- data/lib/avro_gen/configuration.rb +60 -0
- data/lib/avro_gen/errors.rb +6 -0
- data/lib/avro_gen/generator/templates/schema_class.rb.tt +8 -0
- data/lib/avro_gen/generator/templates/schema_enum.rb.tt +13 -0
- data/lib/avro_gen/generator/templates/schema_record.rb.tt +102 -0
- data/lib/avro_gen/generator.rb +375 -0
- data/lib/avro_gen/railtie.rb +12 -0
- data/lib/avro_gen/schema_class/base.rb +62 -0
- data/lib/avro_gen/schema_class/enum.rb +48 -0
- data/lib/avro_gen/schema_class/record.rb +108 -0
- data/lib/avro_gen/schema_class.rb +62 -0
- data/lib/avro_gen/schema_field.rb +26 -0
- data/lib/avro_gen/schema_validator.rb +80 -0
- data/lib/avro_gen/upgrader.rb +43 -0
- data/lib/avro_gen/version.rb +5 -0
- data/lib/avro_gen.rb +18 -0
- data/lib/tasks/avro.rake +18 -0
- data/regenerate_test_schema_classes.rb +32 -0
- data/spec/generator_spec.rb +92 -0
- data/spec/my_schema_spec.rb +18 -0
- data/spec/my_schema_with_circular_reference_spec.rb +97 -0
- data/spec/my_schema_with_complex_types_spec.rb +235 -0
- data/spec/schema_validator_spec.rb +42 -0
- data/spec/schemas/com/my-namespace/Generated.avsc +77 -0
- data/spec/schemas/com/my-namespace/MyNestedSchema.avsc +62 -0
- data/spec/schemas/com/my-namespace/MySchema.avsc +18 -0
- data/spec/schemas/com/my-namespace/MySchemaCompound_key.avsc +18 -0
- data/spec/schemas/com/my-namespace/MySchemaId_key.avsc +12 -0
- data/spec/schemas/com/my-namespace/MySchemaWithBooleans.avsc +18 -0
- data/spec/schemas/com/my-namespace/MySchemaWithCircularReference.avsc +39 -0
- data/spec/schemas/com/my-namespace/MySchemaWithComplexTypes.avsc +120 -0
- data/spec/schemas/com/my-namespace/MySchemaWithDateTimes.avsc +33 -0
- data/spec/schemas/com/my-namespace/MySchemaWithId.avsc +28 -0
- data/spec/schemas/com/my-namespace/MySchemaWithTitle.avsc +22 -0
- data/spec/schemas/com/my-namespace/MySchemaWithUnionType.avsc +91 -0
- data/spec/schemas/com/my-namespace/MySchemaWithUniqueId.avsc +32 -0
- data/spec/schemas/com/my-namespace/MySchema_key.avsc +13 -0
- data/spec/schemas/com/my-namespace/Wibble.avsc +43 -0
- data/spec/schemas/com/my-namespace/Widget.avsc +27 -0
- data/spec/schemas/com/my-namespace/WidgetTheSecond.avsc +27 -0
- data/spec/schemas/com/my-namespace/WidgetTheThird.avsc +27 -0
- data/spec/schemas/com/my-namespace/my-suborg/MyLongNamespaceSchema.avsc +18 -0
- data/spec/schemas/com/my-namespace/request/CreateTopic.avsc +11 -0
- data/spec/schemas/com/my-namespace/request/Index.avsc +11 -0
- data/spec/schemas/com/my-namespace/request/UpdateRequest.avsc +11 -0
- data/spec/schemas/com/my-namespace/response/CreateTopic.avsc +11 -0
- data/spec/schemas/com/my-namespace/response/Index.avsc +11 -0
- data/spec/schemas/com/my-namespace/response/UpdateResponse.avsc +11 -0
- data/spec/schemas/my_namespace/generated.rb +164 -0
- data/spec/schemas/my_namespace/my_long_namespace_schema.rb +49 -0
- data/spec/schemas/my_namespace/my_nested_schema.rb +126 -0
- data/spec/schemas/my_namespace/my_schema.rb +62 -0
- data/spec/schemas/my_namespace/my_schema_compound_key.rb +42 -0
- data/spec/schemas/my_namespace/my_schema_id_key.rb +37 -0
- data/spec/schemas/my_namespace/my_schema_key.rb +37 -0
- data/spec/schemas/my_namespace/my_schema_with_boolean.rb +42 -0
- data/spec/schemas/my_namespace/my_schema_with_circular_reference.rb +84 -0
- data/spec/schemas/my_namespace/my_schema_with_complex_type.rb +241 -0
- data/spec/schemas/my_namespace/my_schema_with_date_time.rb +57 -0
- data/spec/schemas/my_namespace/my_schema_with_id.rb +52 -0
- data/spec/schemas/my_namespace/my_schema_with_title.rb +47 -0
- data/spec/schemas/my_namespace/my_schema_with_union_type.rb +205 -0
- data/spec/schemas/my_namespace/my_schema_with_unique_id.rb +57 -0
- data/spec/schemas/my_namespace/request/create_topic.rb +37 -0
- data/spec/schemas/my_namespace/request/index.rb +37 -0
- data/spec/schemas/my_namespace/request/update_request.rb +37 -0
- data/spec/schemas/my_namespace/response/create_topic.rb +37 -0
- data/spec/schemas/my_namespace/response/index.rb +37 -0
- data/spec/schemas/my_namespace/response/update_response.rb +37 -0
- data/spec/schemas/my_namespace/wibble.rb +77 -0
- data/spec/schemas/my_namespace/widget.rb +57 -0
- data/spec/schemas/my_namespace/widget_the_second.rb +57 -0
- data/spec/schemas/my_namespace/widget_the_third.rb +57 -0
- data/spec/snapshots/consumers-no-nest.snap +1740 -0
- data/spec/snapshots/consumers.snap +1720 -0
- data/spec/snapshots/my_nested_schema.snap +121 -0
- data/spec/snapshots/my_schema_with_boolean.snap +44 -0
- data/spec/snapshots/my_schema_with_circular_reference.snap +81 -0
- data/spec/snapshots/my_schema_with_complex_type.snap +236 -0
- data/spec/snapshots/my_schema_with_date_time.snap +59 -0
- data/spec/snapshots/my_schema_with_union_type.snap +207 -0
- data/spec/snapshots/namespace_folders.snap +1800 -0
- data/spec/snapshots/namespace_map.snap +1800 -0
- data/spec/spec_helper.rb +23 -0
- metadata +265 -0
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
{
|
|
2
|
+
"namespace": "com.my-namespace",
|
|
3
|
+
"name": "Widget",
|
|
4
|
+
"type": "record",
|
|
5
|
+
"fields": [
|
|
6
|
+
{
|
|
7
|
+
"name": "id",
|
|
8
|
+
"type": "long"
|
|
9
|
+
},
|
|
10
|
+
{
|
|
11
|
+
"name": "widget_id",
|
|
12
|
+
"type": "long"
|
|
13
|
+
},
|
|
14
|
+
{
|
|
15
|
+
"name": "name",
|
|
16
|
+
"type": "string"
|
|
17
|
+
},
|
|
18
|
+
{
|
|
19
|
+
"name": "updated_at",
|
|
20
|
+
"type": "long"
|
|
21
|
+
},
|
|
22
|
+
{
|
|
23
|
+
"name": "created_at",
|
|
24
|
+
"type": "long"
|
|
25
|
+
}
|
|
26
|
+
]
|
|
27
|
+
}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
{
|
|
2
|
+
"namespace": "com.my-namespace",
|
|
3
|
+
"name": "WidgetTheSecond",
|
|
4
|
+
"type": "record",
|
|
5
|
+
"fields": [
|
|
6
|
+
{
|
|
7
|
+
"name": "id",
|
|
8
|
+
"type": "long"
|
|
9
|
+
},
|
|
10
|
+
{
|
|
11
|
+
"name": "widget_id",
|
|
12
|
+
"type": "long"
|
|
13
|
+
},
|
|
14
|
+
{
|
|
15
|
+
"name": "model_id",
|
|
16
|
+
"type": "string"
|
|
17
|
+
},
|
|
18
|
+
{
|
|
19
|
+
"name": "updated_at",
|
|
20
|
+
"type": "long"
|
|
21
|
+
},
|
|
22
|
+
{
|
|
23
|
+
"name": "created_at",
|
|
24
|
+
"type": "long"
|
|
25
|
+
}
|
|
26
|
+
]
|
|
27
|
+
}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
{
|
|
2
|
+
"namespace": "com.my-namespace",
|
|
3
|
+
"name": "WidgetTheThird",
|
|
4
|
+
"type": "record",
|
|
5
|
+
"fields": [
|
|
6
|
+
{
|
|
7
|
+
"name": "id",
|
|
8
|
+
"type": "string"
|
|
9
|
+
},
|
|
10
|
+
{
|
|
11
|
+
"name": "widget_id",
|
|
12
|
+
"type": "long"
|
|
13
|
+
},
|
|
14
|
+
{
|
|
15
|
+
"name": "model_id",
|
|
16
|
+
"type": "string"
|
|
17
|
+
},
|
|
18
|
+
{
|
|
19
|
+
"name": "updated_at",
|
|
20
|
+
"type": "long"
|
|
21
|
+
},
|
|
22
|
+
{
|
|
23
|
+
"name": "created_at",
|
|
24
|
+
"type": "long"
|
|
25
|
+
}
|
|
26
|
+
]
|
|
27
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
{
|
|
2
|
+
"namespace": "com.my-namespace.my-suborg",
|
|
3
|
+
"name": "MyLongNamespaceSchema",
|
|
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": "some_int",
|
|
14
|
+
"type": "int",
|
|
15
|
+
"doc": "test int"
|
|
16
|
+
}
|
|
17
|
+
]
|
|
18
|
+
}
|
|
@@ -0,0 +1,164 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
# This file is autogenerated by AvroGen, Do NOT modify
|
|
4
|
+
module Schemas; module MyNamespace
|
|
5
|
+
### Primary Schema Class ###
|
|
6
|
+
# Autogenerated Schema for Record at com.my-namespace.Generated
|
|
7
|
+
class Generated < AvroGen::SchemaClass::Record
|
|
8
|
+
|
|
9
|
+
### Secondary Schema Classes ###
|
|
10
|
+
# Autogenerated Schema for Record at com.my-namespace.ARecord
|
|
11
|
+
class ARecord < AvroGen::SchemaClass::Record
|
|
12
|
+
|
|
13
|
+
### Attribute Accessors ###
|
|
14
|
+
# @return [String]
|
|
15
|
+
attr_accessor :a_record_field
|
|
16
|
+
|
|
17
|
+
# @override
|
|
18
|
+
def initialize(_from_message: false, a_record_field: nil)
|
|
19
|
+
@_from_message = _from_message
|
|
20
|
+
super
|
|
21
|
+
self.a_record_field = a_record_field
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
# @override
|
|
25
|
+
def schema
|
|
26
|
+
'ARecord'
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
# @override
|
|
30
|
+
def namespace
|
|
31
|
+
'com.my-namespace'
|
|
32
|
+
end
|
|
33
|
+
|
|
34
|
+
# @override
|
|
35
|
+
def as_json(_opts={})
|
|
36
|
+
{
|
|
37
|
+
'a_record_field' => @a_record_field
|
|
38
|
+
}
|
|
39
|
+
end
|
|
40
|
+
end
|
|
41
|
+
|
|
42
|
+
# Autogenerated Schema for Enum at com.my-namespace.AnEnum
|
|
43
|
+
class AnEnum < AvroGen::SchemaClass::Enum
|
|
44
|
+
# @override
|
|
45
|
+
def symbols
|
|
46
|
+
%w(sym1 sym2)
|
|
47
|
+
end
|
|
48
|
+
|
|
49
|
+
|
|
50
|
+
def sym1?
|
|
51
|
+
@value == 'sym1'
|
|
52
|
+
end
|
|
53
|
+
|
|
54
|
+
def sym2?
|
|
55
|
+
@value == 'sym2'
|
|
56
|
+
end
|
|
57
|
+
|
|
58
|
+
end
|
|
59
|
+
|
|
60
|
+
|
|
61
|
+
### Attribute Readers ###
|
|
62
|
+
# @return [AnEnum]
|
|
63
|
+
attr_reader :an_enum
|
|
64
|
+
# @return [ARecord]
|
|
65
|
+
attr_reader :a_record
|
|
66
|
+
|
|
67
|
+
### Attribute Accessors ###
|
|
68
|
+
# @return [String]
|
|
69
|
+
attr_accessor :a_string
|
|
70
|
+
# @return [Integer]
|
|
71
|
+
attr_accessor :a_int
|
|
72
|
+
# @return [Integer]
|
|
73
|
+
attr_accessor :a_long
|
|
74
|
+
# @return [Float]
|
|
75
|
+
attr_accessor :a_float
|
|
76
|
+
# @return [Float]
|
|
77
|
+
attr_accessor :a_double
|
|
78
|
+
# @return [nil, Integer]
|
|
79
|
+
attr_accessor :an_optional_int
|
|
80
|
+
# @return [Array<Integer>]
|
|
81
|
+
attr_accessor :an_array
|
|
82
|
+
# @return [Hash<String, String>]
|
|
83
|
+
attr_accessor :a_map
|
|
84
|
+
# @return [String]
|
|
85
|
+
attr_accessor :timestamp
|
|
86
|
+
# @return [String]
|
|
87
|
+
attr_accessor :message_id
|
|
88
|
+
|
|
89
|
+
### Attribute Writers ###
|
|
90
|
+
# @return [AnEnum]
|
|
91
|
+
def an_enum=(value)
|
|
92
|
+
@an_enum = AnEnum.initialize_from_value(value, from_message: self._from_message)
|
|
93
|
+
end
|
|
94
|
+
|
|
95
|
+
# @return [ARecord]
|
|
96
|
+
def a_record=(value)
|
|
97
|
+
@a_record = ARecord.initialize_from_value(value, from_message: self._from_message)
|
|
98
|
+
end
|
|
99
|
+
|
|
100
|
+
# @override
|
|
101
|
+
def initialize(_from_message: false, a_string: nil,
|
|
102
|
+
a_int: nil,
|
|
103
|
+
a_long: nil,
|
|
104
|
+
a_float: nil,
|
|
105
|
+
a_double: nil,
|
|
106
|
+
an_optional_int: nil,
|
|
107
|
+
an_enum: nil,
|
|
108
|
+
an_array: nil,
|
|
109
|
+
a_map: nil,
|
|
110
|
+
timestamp: nil,
|
|
111
|
+
message_id: nil,
|
|
112
|
+
a_record: nil)
|
|
113
|
+
@_from_message = _from_message
|
|
114
|
+
super
|
|
115
|
+
self.a_string = a_string
|
|
116
|
+
self.a_int = a_int
|
|
117
|
+
self.a_long = a_long
|
|
118
|
+
self.a_float = a_float
|
|
119
|
+
self.a_double = a_double
|
|
120
|
+
self.an_optional_int = an_optional_int
|
|
121
|
+
self.an_enum = an_enum
|
|
122
|
+
self.an_array = an_array
|
|
123
|
+
self.a_map = a_map
|
|
124
|
+
self.timestamp = timestamp
|
|
125
|
+
self.message_id = message_id
|
|
126
|
+
self.a_record = a_record
|
|
127
|
+
end
|
|
128
|
+
|
|
129
|
+
# @override
|
|
130
|
+
def schema
|
|
131
|
+
'Generated'
|
|
132
|
+
end
|
|
133
|
+
|
|
134
|
+
# @override
|
|
135
|
+
def namespace
|
|
136
|
+
'com.my-namespace'
|
|
137
|
+
end
|
|
138
|
+
|
|
139
|
+
def self.tombstone(key)
|
|
140
|
+
record = self.allocate
|
|
141
|
+
record.tombstone_key = key
|
|
142
|
+
record.a_string = key
|
|
143
|
+
record
|
|
144
|
+
end
|
|
145
|
+
|
|
146
|
+
# @override
|
|
147
|
+
def as_json(_opts={})
|
|
148
|
+
{
|
|
149
|
+
'a_string' => @a_string,
|
|
150
|
+
'a_int' => @a_int,
|
|
151
|
+
'a_long' => @a_long,
|
|
152
|
+
'a_float' => @a_float,
|
|
153
|
+
'a_double' => @a_double,
|
|
154
|
+
'an_optional_int' => @an_optional_int,
|
|
155
|
+
'an_enum' => @an_enum&.as_json,
|
|
156
|
+
'an_array' => @an_array,
|
|
157
|
+
'a_map' => @a_map,
|
|
158
|
+
'timestamp' => @timestamp,
|
|
159
|
+
'message_id' => @message_id,
|
|
160
|
+
'a_record' => @a_record&.as_json
|
|
161
|
+
}
|
|
162
|
+
end
|
|
163
|
+
end
|
|
164
|
+
end; end
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
# This file is autogenerated by AvroGen, Do NOT modify
|
|
4
|
+
module Schemas; module MyNamespace
|
|
5
|
+
### Primary Schema Class ###
|
|
6
|
+
# Autogenerated Schema for Record at com.my-namespace.my-suborg.MyLongNamespaceSchema
|
|
7
|
+
class MyLongNamespaceSchema < AvroGen::SchemaClass::Record
|
|
8
|
+
|
|
9
|
+
### Attribute Accessors ###
|
|
10
|
+
# @return [String]
|
|
11
|
+
attr_accessor :test_id
|
|
12
|
+
# @return [Integer]
|
|
13
|
+
attr_accessor :some_int
|
|
14
|
+
|
|
15
|
+
# @override
|
|
16
|
+
def initialize(_from_message: false, test_id: nil,
|
|
17
|
+
some_int: nil)
|
|
18
|
+
@_from_message = _from_message
|
|
19
|
+
super
|
|
20
|
+
self.test_id = test_id
|
|
21
|
+
self.some_int = some_int
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
# @override
|
|
25
|
+
def schema
|
|
26
|
+
'MyLongNamespaceSchema'
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
# @override
|
|
30
|
+
def namespace
|
|
31
|
+
'com.my-namespace.my-suborg'
|
|
32
|
+
end
|
|
33
|
+
|
|
34
|
+
def self.tombstone(key)
|
|
35
|
+
record = self.allocate
|
|
36
|
+
record.tombstone_key = key
|
|
37
|
+
record.test_id = key
|
|
38
|
+
record
|
|
39
|
+
end
|
|
40
|
+
|
|
41
|
+
# @override
|
|
42
|
+
def as_json(_opts={})
|
|
43
|
+
{
|
|
44
|
+
'test_id' => @test_id,
|
|
45
|
+
'some_int' => @some_int
|
|
46
|
+
}
|
|
47
|
+
end
|
|
48
|
+
end
|
|
49
|
+
end; end
|
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
# This file is autogenerated by AvroGen, Do NOT modify
|
|
4
|
+
module Schemas; module MyNamespace
|
|
5
|
+
### Primary Schema Class ###
|
|
6
|
+
# Autogenerated Schema for Record at com.my-namespace.MyNestedSchema
|
|
7
|
+
class MyNestedSchema < AvroGen::SchemaClass::Record
|
|
8
|
+
|
|
9
|
+
### Secondary Schema Classes ###
|
|
10
|
+
# Autogenerated Schema for Record at com.my-namespace.MyNestedRecord
|
|
11
|
+
class MyNestedRecord < AvroGen::SchemaClass::Record
|
|
12
|
+
|
|
13
|
+
### Attribute Accessors ###
|
|
14
|
+
# @return [Integer]
|
|
15
|
+
attr_accessor :some_int
|
|
16
|
+
# @return [Float]
|
|
17
|
+
attr_accessor :some_float
|
|
18
|
+
# @return [String]
|
|
19
|
+
attr_accessor :some_string
|
|
20
|
+
# @return [nil, Integer]
|
|
21
|
+
attr_accessor :some_optional_int
|
|
22
|
+
|
|
23
|
+
# @override
|
|
24
|
+
def initialize(_from_message: false, some_int: nil,
|
|
25
|
+
some_float: nil,
|
|
26
|
+
some_string: nil,
|
|
27
|
+
some_optional_int: nil)
|
|
28
|
+
@_from_message = _from_message
|
|
29
|
+
super
|
|
30
|
+
self.some_int = some_int
|
|
31
|
+
self.some_float = some_float
|
|
32
|
+
self.some_string = some_string
|
|
33
|
+
self.some_optional_int = some_optional_int
|
|
34
|
+
end
|
|
35
|
+
|
|
36
|
+
# @override
|
|
37
|
+
def schema
|
|
38
|
+
'MyNestedRecord'
|
|
39
|
+
end
|
|
40
|
+
|
|
41
|
+
# @override
|
|
42
|
+
def namespace
|
|
43
|
+
'com.my-namespace'
|
|
44
|
+
end
|
|
45
|
+
|
|
46
|
+
# @override
|
|
47
|
+
def as_json(_opts={})
|
|
48
|
+
{
|
|
49
|
+
'some_int' => @some_int,
|
|
50
|
+
'some_float' => @some_float,
|
|
51
|
+
'some_string' => @some_string,
|
|
52
|
+
'some_optional_int' => @some_optional_int
|
|
53
|
+
}
|
|
54
|
+
end
|
|
55
|
+
end
|
|
56
|
+
|
|
57
|
+
|
|
58
|
+
### Attribute Readers ###
|
|
59
|
+
# @return [MyNestedRecord]
|
|
60
|
+
attr_reader :some_nested_record
|
|
61
|
+
# @return [nil, MyNestedRecord]
|
|
62
|
+
attr_reader :some_optional_record
|
|
63
|
+
|
|
64
|
+
### Attribute Accessors ###
|
|
65
|
+
# @return [String]
|
|
66
|
+
attr_accessor :test_id
|
|
67
|
+
# @return [Float]
|
|
68
|
+
attr_accessor :test_float
|
|
69
|
+
# @return [Array<String>]
|
|
70
|
+
attr_accessor :test_array
|
|
71
|
+
|
|
72
|
+
### Attribute Writers ###
|
|
73
|
+
# @return [MyNestedRecord]
|
|
74
|
+
def some_nested_record=(value)
|
|
75
|
+
@some_nested_record = MyNestedRecord.initialize_from_value(value, from_message: self._from_message)
|
|
76
|
+
end
|
|
77
|
+
|
|
78
|
+
# @return [nil, MyNestedRecord]
|
|
79
|
+
def some_optional_record=(value)
|
|
80
|
+
@some_optional_record = MyNestedRecord.initialize_from_value(value, from_message: self._from_message)
|
|
81
|
+
end
|
|
82
|
+
|
|
83
|
+
# @override
|
|
84
|
+
def initialize(_from_message: false, test_id: nil,
|
|
85
|
+
test_float: nil,
|
|
86
|
+
test_array: nil,
|
|
87
|
+
some_nested_record: nil,
|
|
88
|
+
some_optional_record: nil)
|
|
89
|
+
@_from_message = _from_message
|
|
90
|
+
super
|
|
91
|
+
self.test_id = test_id
|
|
92
|
+
self.test_float = test_float
|
|
93
|
+
self.test_array = test_array
|
|
94
|
+
self.some_nested_record = some_nested_record
|
|
95
|
+
self.some_optional_record = some_optional_record
|
|
96
|
+
end
|
|
97
|
+
|
|
98
|
+
# @override
|
|
99
|
+
def schema
|
|
100
|
+
'MyNestedSchema'
|
|
101
|
+
end
|
|
102
|
+
|
|
103
|
+
# @override
|
|
104
|
+
def namespace
|
|
105
|
+
'com.my-namespace'
|
|
106
|
+
end
|
|
107
|
+
|
|
108
|
+
def self.tombstone(key)
|
|
109
|
+
record = self.allocate
|
|
110
|
+
record.tombstone_key = key
|
|
111
|
+
record.test_id = key
|
|
112
|
+
record
|
|
113
|
+
end
|
|
114
|
+
|
|
115
|
+
# @override
|
|
116
|
+
def as_json(_opts={})
|
|
117
|
+
{
|
|
118
|
+
'test_id' => @test_id,
|
|
119
|
+
'test_float' => @test_float,
|
|
120
|
+
'test_array' => @test_array,
|
|
121
|
+
'some_nested_record' => @some_nested_record&.as_json,
|
|
122
|
+
'some_optional_record' => @some_optional_record&.as_json
|
|
123
|
+
}
|
|
124
|
+
end
|
|
125
|
+
end
|
|
126
|
+
end; end
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
# This file is autogenerated by AvroGen, Do NOT modify
|
|
4
|
+
module Schemas; module MyNamespace
|
|
5
|
+
### Primary Schema Class ###
|
|
6
|
+
# Autogenerated Schema for Record at com.my-namespace.MySchema
|
|
7
|
+
class MySchema < AvroGen::SchemaClass::Record
|
|
8
|
+
|
|
9
|
+
### Attribute Readers ###
|
|
10
|
+
# @return [MySchemaKey]
|
|
11
|
+
attr_reader :payload_key
|
|
12
|
+
|
|
13
|
+
### Attribute Accessors ###
|
|
14
|
+
# @return [String]
|
|
15
|
+
attr_accessor :test_id
|
|
16
|
+
# @return [Integer]
|
|
17
|
+
attr_accessor :some_int
|
|
18
|
+
|
|
19
|
+
### Attribute Writers ###
|
|
20
|
+
# @return [MySchemaKey]
|
|
21
|
+
def payload_key=(value)
|
|
22
|
+
@payload_key = MySchemaKey.initialize_from_value(value, from_message: self._from_message)
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
# @override
|
|
26
|
+
def initialize(_from_message: false, test_id: nil,
|
|
27
|
+
some_int: nil,
|
|
28
|
+
payload_key: nil)
|
|
29
|
+
@_from_message = _from_message
|
|
30
|
+
super
|
|
31
|
+
self.test_id = test_id
|
|
32
|
+
self.some_int = some_int
|
|
33
|
+
self.payload_key = payload_key
|
|
34
|
+
end
|
|
35
|
+
|
|
36
|
+
# @override
|
|
37
|
+
def schema
|
|
38
|
+
'MySchema'
|
|
39
|
+
end
|
|
40
|
+
|
|
41
|
+
# @override
|
|
42
|
+
def namespace
|
|
43
|
+
'com.my-namespace'
|
|
44
|
+
end
|
|
45
|
+
|
|
46
|
+
def self.tombstone(key)
|
|
47
|
+
record = self.allocate
|
|
48
|
+
record.tombstone_key = MySchemaKey.initialize_from_value(key)
|
|
49
|
+
record.payload_key = key
|
|
50
|
+
record
|
|
51
|
+
end
|
|
52
|
+
|
|
53
|
+
# @override
|
|
54
|
+
def as_json(_opts={})
|
|
55
|
+
{
|
|
56
|
+
'test_id' => @test_id,
|
|
57
|
+
'some_int' => @some_int,
|
|
58
|
+
'payload_key' => @payload_key&.as_json
|
|
59
|
+
}
|
|
60
|
+
end
|
|
61
|
+
end
|
|
62
|
+
end; end
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
# This file is autogenerated by AvroGen, Do NOT modify
|
|
4
|
+
module Schemas; module MyNamespace
|
|
5
|
+
### Primary Schema Class ###
|
|
6
|
+
# Autogenerated Schema for Record at com.my-namespace.MySchemaCompound_key
|
|
7
|
+
class MySchemaCompoundKey < AvroGen::SchemaClass::Record
|
|
8
|
+
|
|
9
|
+
### Attribute Accessors ###
|
|
10
|
+
# @return [String]
|
|
11
|
+
attr_accessor :part_one
|
|
12
|
+
# @return [String]
|
|
13
|
+
attr_accessor :part_two
|
|
14
|
+
|
|
15
|
+
# @override
|
|
16
|
+
def initialize(_from_message: false, part_one: nil,
|
|
17
|
+
part_two: nil)
|
|
18
|
+
@_from_message = _from_message
|
|
19
|
+
super
|
|
20
|
+
self.part_one = part_one
|
|
21
|
+
self.part_two = part_two
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
# @override
|
|
25
|
+
def schema
|
|
26
|
+
'MySchemaCompound_key'
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
# @override
|
|
30
|
+
def namespace
|
|
31
|
+
'com.my-namespace'
|
|
32
|
+
end
|
|
33
|
+
|
|
34
|
+
# @override
|
|
35
|
+
def as_json(_opts={})
|
|
36
|
+
{
|
|
37
|
+
'part_one' => @part_one,
|
|
38
|
+
'part_two' => @part_two
|
|
39
|
+
}
|
|
40
|
+
end
|
|
41
|
+
end
|
|
42
|
+
end; end
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
# This file is autogenerated by AvroGen, Do NOT modify
|
|
4
|
+
module Schemas; module MyNamespace
|
|
5
|
+
### Primary Schema Class ###
|
|
6
|
+
# Autogenerated Schema for Record at com.my-namespace.MySchemaId_key
|
|
7
|
+
class MySchemaIdKey < AvroGen::SchemaClass::Record
|
|
8
|
+
|
|
9
|
+
### Attribute Accessors ###
|
|
10
|
+
# @return [Integer]
|
|
11
|
+
attr_accessor :id
|
|
12
|
+
|
|
13
|
+
# @override
|
|
14
|
+
def initialize(_from_message: false, id: nil)
|
|
15
|
+
@_from_message = _from_message
|
|
16
|
+
super
|
|
17
|
+
self.id = id
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
# @override
|
|
21
|
+
def schema
|
|
22
|
+
'MySchemaId_key'
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
# @override
|
|
26
|
+
def namespace
|
|
27
|
+
'com.my-namespace'
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
# @override
|
|
31
|
+
def as_json(_opts={})
|
|
32
|
+
{
|
|
33
|
+
'id' => @id
|
|
34
|
+
}
|
|
35
|
+
end
|
|
36
|
+
end
|
|
37
|
+
end; end
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
# This file is autogenerated by AvroGen, Do NOT modify
|
|
4
|
+
module Schemas; module MyNamespace
|
|
5
|
+
### Primary Schema Class ###
|
|
6
|
+
# Autogenerated Schema for Record at com.my-namespace.MySchema_key
|
|
7
|
+
class MySchemaKey < AvroGen::SchemaClass::Record
|
|
8
|
+
|
|
9
|
+
### Attribute Accessors ###
|
|
10
|
+
# @return [String]
|
|
11
|
+
attr_accessor :test_id
|
|
12
|
+
|
|
13
|
+
# @override
|
|
14
|
+
def initialize(_from_message: false, test_id: nil)
|
|
15
|
+
@_from_message = _from_message
|
|
16
|
+
super
|
|
17
|
+
self.test_id = test_id
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
# @override
|
|
21
|
+
def schema
|
|
22
|
+
'MySchema_key'
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
# @override
|
|
26
|
+
def namespace
|
|
27
|
+
'com.my-namespace'
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
# @override
|
|
31
|
+
def as_json(_opts={})
|
|
32
|
+
{
|
|
33
|
+
'test_id' => @test_id
|
|
34
|
+
}
|
|
35
|
+
end
|
|
36
|
+
end
|
|
37
|
+
end; end
|