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.
Files changed (97) hide show
  1. checksums.yaml +7 -0
  2. data/.github/workflows/ci.yml +34 -0
  3. data/.github/workflows/release.yml +31 -0
  4. data/.gitignore +6 -0
  5. data/.rspec +1 -0
  6. data/.rubocop.yml +100 -0
  7. data/Gemfile +5 -0
  8. data/LICENSE +21 -0
  9. data/README.md +61 -0
  10. data/Rakefile +11 -0
  11. data/avro-gen-ruby.gemspec +32 -0
  12. data/lib/avro_gen/avro_parser.rb +64 -0
  13. data/lib/avro_gen/configuration.rb +60 -0
  14. data/lib/avro_gen/errors.rb +6 -0
  15. data/lib/avro_gen/generator/templates/schema_class.rb.tt +8 -0
  16. data/lib/avro_gen/generator/templates/schema_enum.rb.tt +13 -0
  17. data/lib/avro_gen/generator/templates/schema_record.rb.tt +102 -0
  18. data/lib/avro_gen/generator.rb +375 -0
  19. data/lib/avro_gen/railtie.rb +12 -0
  20. data/lib/avro_gen/schema_class/base.rb +62 -0
  21. data/lib/avro_gen/schema_class/enum.rb +48 -0
  22. data/lib/avro_gen/schema_class/record.rb +108 -0
  23. data/lib/avro_gen/schema_class.rb +62 -0
  24. data/lib/avro_gen/schema_field.rb +26 -0
  25. data/lib/avro_gen/schema_validator.rb +80 -0
  26. data/lib/avro_gen/upgrader.rb +43 -0
  27. data/lib/avro_gen/version.rb +5 -0
  28. data/lib/avro_gen.rb +18 -0
  29. data/lib/tasks/avro.rake +18 -0
  30. data/regenerate_test_schema_classes.rb +32 -0
  31. data/spec/generator_spec.rb +92 -0
  32. data/spec/my_schema_spec.rb +18 -0
  33. data/spec/my_schema_with_circular_reference_spec.rb +97 -0
  34. data/spec/my_schema_with_complex_types_spec.rb +235 -0
  35. data/spec/schema_validator_spec.rb +42 -0
  36. data/spec/schemas/com/my-namespace/Generated.avsc +77 -0
  37. data/spec/schemas/com/my-namespace/MyNestedSchema.avsc +62 -0
  38. data/spec/schemas/com/my-namespace/MySchema.avsc +18 -0
  39. data/spec/schemas/com/my-namespace/MySchemaCompound_key.avsc +18 -0
  40. data/spec/schemas/com/my-namespace/MySchemaId_key.avsc +12 -0
  41. data/spec/schemas/com/my-namespace/MySchemaWithBooleans.avsc +18 -0
  42. data/spec/schemas/com/my-namespace/MySchemaWithCircularReference.avsc +39 -0
  43. data/spec/schemas/com/my-namespace/MySchemaWithComplexTypes.avsc +120 -0
  44. data/spec/schemas/com/my-namespace/MySchemaWithDateTimes.avsc +33 -0
  45. data/spec/schemas/com/my-namespace/MySchemaWithId.avsc +28 -0
  46. data/spec/schemas/com/my-namespace/MySchemaWithTitle.avsc +22 -0
  47. data/spec/schemas/com/my-namespace/MySchemaWithUnionType.avsc +91 -0
  48. data/spec/schemas/com/my-namespace/MySchemaWithUniqueId.avsc +32 -0
  49. data/spec/schemas/com/my-namespace/MySchema_key.avsc +13 -0
  50. data/spec/schemas/com/my-namespace/Wibble.avsc +43 -0
  51. data/spec/schemas/com/my-namespace/Widget.avsc +27 -0
  52. data/spec/schemas/com/my-namespace/WidgetTheSecond.avsc +27 -0
  53. data/spec/schemas/com/my-namespace/WidgetTheThird.avsc +27 -0
  54. data/spec/schemas/com/my-namespace/my-suborg/MyLongNamespaceSchema.avsc +18 -0
  55. data/spec/schemas/com/my-namespace/request/CreateTopic.avsc +11 -0
  56. data/spec/schemas/com/my-namespace/request/Index.avsc +11 -0
  57. data/spec/schemas/com/my-namespace/request/UpdateRequest.avsc +11 -0
  58. data/spec/schemas/com/my-namespace/response/CreateTopic.avsc +11 -0
  59. data/spec/schemas/com/my-namespace/response/Index.avsc +11 -0
  60. data/spec/schemas/com/my-namespace/response/UpdateResponse.avsc +11 -0
  61. data/spec/schemas/my_namespace/generated.rb +164 -0
  62. data/spec/schemas/my_namespace/my_long_namespace_schema.rb +49 -0
  63. data/spec/schemas/my_namespace/my_nested_schema.rb +126 -0
  64. data/spec/schemas/my_namespace/my_schema.rb +62 -0
  65. data/spec/schemas/my_namespace/my_schema_compound_key.rb +42 -0
  66. data/spec/schemas/my_namespace/my_schema_id_key.rb +37 -0
  67. data/spec/schemas/my_namespace/my_schema_key.rb +37 -0
  68. data/spec/schemas/my_namespace/my_schema_with_boolean.rb +42 -0
  69. data/spec/schemas/my_namespace/my_schema_with_circular_reference.rb +84 -0
  70. data/spec/schemas/my_namespace/my_schema_with_complex_type.rb +241 -0
  71. data/spec/schemas/my_namespace/my_schema_with_date_time.rb +57 -0
  72. data/spec/schemas/my_namespace/my_schema_with_id.rb +52 -0
  73. data/spec/schemas/my_namespace/my_schema_with_title.rb +47 -0
  74. data/spec/schemas/my_namespace/my_schema_with_union_type.rb +205 -0
  75. data/spec/schemas/my_namespace/my_schema_with_unique_id.rb +57 -0
  76. data/spec/schemas/my_namespace/request/create_topic.rb +37 -0
  77. data/spec/schemas/my_namespace/request/index.rb +37 -0
  78. data/spec/schemas/my_namespace/request/update_request.rb +37 -0
  79. data/spec/schemas/my_namespace/response/create_topic.rb +37 -0
  80. data/spec/schemas/my_namespace/response/index.rb +37 -0
  81. data/spec/schemas/my_namespace/response/update_response.rb +37 -0
  82. data/spec/schemas/my_namespace/wibble.rb +77 -0
  83. data/spec/schemas/my_namespace/widget.rb +57 -0
  84. data/spec/schemas/my_namespace/widget_the_second.rb +57 -0
  85. data/spec/schemas/my_namespace/widget_the_third.rb +57 -0
  86. data/spec/snapshots/consumers-no-nest.snap +1740 -0
  87. data/spec/snapshots/consumers.snap +1720 -0
  88. data/spec/snapshots/my_nested_schema.snap +121 -0
  89. data/spec/snapshots/my_schema_with_boolean.snap +44 -0
  90. data/spec/snapshots/my_schema_with_circular_reference.snap +81 -0
  91. data/spec/snapshots/my_schema_with_complex_type.snap +236 -0
  92. data/spec/snapshots/my_schema_with_date_time.snap +59 -0
  93. data/spec/snapshots/my_schema_with_union_type.snap +207 -0
  94. data/spec/snapshots/namespace_folders.snap +1800 -0
  95. data/spec/snapshots/namespace_map.snap +1800 -0
  96. data/spec/spec_helper.rb +23 -0
  97. metadata +265 -0
@@ -0,0 +1,205 @@
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.MySchemaWithUnionType
7
+ class MySchemaWithUnionType < AvroGen::SchemaClass::Record
8
+
9
+ ### Secondary Schema Classes ###
10
+ # Autogenerated Schema for Record at com.flipp.content.Record1
11
+ class Record1 < AvroGen::SchemaClass::Record
12
+
13
+ ### Attribute Accessors ###
14
+ # @return [Hash<String, Integer>]
15
+ attr_accessor :record1_map
16
+ # @return [Integer]
17
+ attr_accessor :record1_id
18
+
19
+ # @override
20
+ def initialize(_from_message: false, record1_map: {},
21
+ record1_id: 0)
22
+ @_from_message = _from_message
23
+ super
24
+ self.record1_map = record1_map
25
+ self.record1_id = record1_id
26
+ end
27
+
28
+ # @override
29
+ def schema
30
+ 'Record1'
31
+ end
32
+
33
+ # @override
34
+ def namespace
35
+ 'com.flipp.content'
36
+ end
37
+
38
+ # @override
39
+ def as_json(_opts={})
40
+ {
41
+ 'record1_map' => @record1_map,
42
+ 'record1_id' => @record1_id
43
+ }
44
+ end
45
+ end
46
+
47
+ # Autogenerated Schema for Record at com.flipp.content.Record2
48
+ class Record2 < AvroGen::SchemaClass::Record
49
+
50
+ ### Attribute Accessors ###
51
+ # @return [String]
52
+ attr_accessor :record2_id
53
+
54
+ # @override
55
+ def initialize(_from_message: false, record2_id: "")
56
+ @_from_message = _from_message
57
+ super
58
+ self.record2_id = record2_id
59
+ end
60
+
61
+ # @override
62
+ def schema
63
+ 'Record2'
64
+ end
65
+
66
+ # @override
67
+ def namespace
68
+ 'com.flipp.content'
69
+ end
70
+
71
+ # @override
72
+ def as_json(_opts={})
73
+ {
74
+ 'record2_id' => @record2_id
75
+ }
76
+ end
77
+ end
78
+
79
+ # Autogenerated Schema for Record at com.flipp.content.Record3
80
+ class Record3 < AvroGen::SchemaClass::Record
81
+
82
+ ### Attribute Accessors ###
83
+ # @return [Float]
84
+ attr_accessor :record3_id
85
+
86
+ # @override
87
+ def initialize(_from_message: false, record3_id: 0.0)
88
+ @_from_message = _from_message
89
+ super
90
+ self.record3_id = record3_id
91
+ end
92
+
93
+ # @override
94
+ def schema
95
+ 'Record3'
96
+ end
97
+
98
+ # @override
99
+ def namespace
100
+ 'com.flipp.content'
101
+ end
102
+
103
+ # @override
104
+ def as_json(_opts={})
105
+ {
106
+ 'record3_id' => @record3_id
107
+ }
108
+ end
109
+ end
110
+
111
+ # Autogenerated Schema for Record at com.flipp.content.Record4
112
+ class Record4 < AvroGen::SchemaClass::Record
113
+
114
+ ### Attribute Accessors ###
115
+ # @return [Integer]
116
+ attr_accessor :record4_id
117
+
118
+ # @override
119
+ def initialize(_from_message: false, record4_id: 0)
120
+ @_from_message = _from_message
121
+ super
122
+ self.record4_id = record4_id
123
+ end
124
+
125
+ # @override
126
+ def schema
127
+ 'Record4'
128
+ end
129
+
130
+ # @override
131
+ def namespace
132
+ 'com.flipp.content'
133
+ end
134
+
135
+ # @override
136
+ def as_json(_opts={})
137
+ {
138
+ 'record4_id' => @record4_id
139
+ }
140
+ end
141
+ end
142
+
143
+
144
+ ### Attribute Readers ###
145
+ # @return [nil, Record1, Record2, Record3, Record4, Integer, Array<String>]
146
+ attr_reader :test_union_type
147
+
148
+ ### Attribute Accessors ###
149
+ # @return [String]
150
+ attr_accessor :test_id
151
+ # @return [nil, Integer]
152
+ attr_accessor :test_long
153
+
154
+ ### Attribute Writers ###
155
+ # @return [nil, Record1, Record2, Record3, Record4, Integer, Array<String>]
156
+ def test_union_type=(value)
157
+ @test_union_type = initialize_test_union_type_type(value, from_message: self._from_message)
158
+ end
159
+
160
+ # Helper method to determine which schema type to use for test_union_type
161
+ # @param value [Hash, nil]
162
+ # @param from_message [Boolean] whether this was initialized from a real Avro message
163
+ # @return [Object, nil]
164
+ def initialize_test_union_type_type(value, from_message: false)
165
+ return nil if value.nil?
166
+
167
+ klass = [Record1, Record2, Record3, Record4].find do |candidate|
168
+ fields = candidate.new.as_json.keys
169
+ (value.keys - fields).empty?
170
+ end
171
+
172
+ klass.initialize_from_value(value, from_message: self._from_message)
173
+ end
174
+
175
+ # @override
176
+ def initialize(_from_message: false, test_id: "",
177
+ test_long: nil,
178
+ test_union_type: nil)
179
+ @_from_message = _from_message
180
+ super
181
+ self.test_id = test_id
182
+ self.test_long = test_long
183
+ self.test_union_type = test_union_type
184
+ end
185
+
186
+ # @override
187
+ def schema
188
+ 'MySchemaWithUnionType'
189
+ end
190
+
191
+ # @override
192
+ def namespace
193
+ 'com.my-namespace'
194
+ end
195
+
196
+ # @override
197
+ def as_json(_opts={})
198
+ {
199
+ 'test_id' => @test_id,
200
+ 'test_long' => @test_long,
201
+ 'test_union_type' => @test_union_type&.as_json
202
+ }
203
+ end
204
+ end
205
+ end; end
@@ -0,0 +1,57 @@
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.MySchemaWithUniqueId
7
+ class MySchemaWithUniqueId < AvroGen::SchemaClass::Record
8
+
9
+ ### Attribute Accessors ###
10
+ # @return [Integer]
11
+ attr_accessor :id
12
+ # @return [String]
13
+ attr_accessor :test_id
14
+ # @return [Integer]
15
+ attr_accessor :some_int
16
+ # @return [String]
17
+ attr_accessor :message_id
18
+ # @return [String]
19
+ attr_accessor :timestamp
20
+
21
+ # @override
22
+ def initialize(_from_message: false, id: nil,
23
+ test_id: nil,
24
+ some_int: nil,
25
+ message_id: nil,
26
+ timestamp: nil)
27
+ @_from_message = _from_message
28
+ super
29
+ self.id = id
30
+ self.test_id = test_id
31
+ self.some_int = some_int
32
+ self.message_id = message_id
33
+ self.timestamp = timestamp
34
+ end
35
+
36
+ # @override
37
+ def schema
38
+ 'MySchemaWithUniqueId'
39
+ end
40
+
41
+ # @override
42
+ def namespace
43
+ 'com.my-namespace'
44
+ end
45
+
46
+ # @override
47
+ def as_json(_opts={})
48
+ {
49
+ 'id' => @id,
50
+ 'test_id' => @test_id,
51
+ 'some_int' => @some_int,
52
+ 'message_id' => @message_id,
53
+ 'timestamp' => @timestamp
54
+ }
55
+ end
56
+ end
57
+ 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; module Request
5
+ ### Primary Schema Class ###
6
+ # Autogenerated Schema for Record at com.my-namespace.request.CreateTopic
7
+ class CreateTopic < AvroGen::SchemaClass::Record
8
+
9
+ ### Attribute Accessors ###
10
+ # @return [String]
11
+ attr_accessor :request_id
12
+
13
+ # @override
14
+ def initialize(_from_message: false, request_id: nil)
15
+ @_from_message = _from_message
16
+ super
17
+ self.request_id = request_id
18
+ end
19
+
20
+ # @override
21
+ def schema
22
+ 'CreateTopic'
23
+ end
24
+
25
+ # @override
26
+ def namespace
27
+ 'com.my-namespace.request'
28
+ end
29
+
30
+ # @override
31
+ def as_json(_opts={})
32
+ {
33
+ 'request_id' => @request_id
34
+ }
35
+ end
36
+ end
37
+ end; 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; module Request
5
+ ### Primary Schema Class ###
6
+ # Autogenerated Schema for Record at com.my-namespace.request.Index
7
+ class Index < AvroGen::SchemaClass::Record
8
+
9
+ ### Attribute Accessors ###
10
+ # @return [String]
11
+ attr_accessor :request_id
12
+
13
+ # @override
14
+ def initialize(_from_message: false, request_id: nil)
15
+ @_from_message = _from_message
16
+ super
17
+ self.request_id = request_id
18
+ end
19
+
20
+ # @override
21
+ def schema
22
+ 'Index'
23
+ end
24
+
25
+ # @override
26
+ def namespace
27
+ 'com.my-namespace.request'
28
+ end
29
+
30
+ # @override
31
+ def as_json(_opts={})
32
+ {
33
+ 'request_id' => @request_id
34
+ }
35
+ end
36
+ end
37
+ end; 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; module Request
5
+ ### Primary Schema Class ###
6
+ # Autogenerated Schema for Record at com.my-namespace.request.UpdateRequest
7
+ class UpdateRequest < AvroGen::SchemaClass::Record
8
+
9
+ ### Attribute Accessors ###
10
+ # @return [String]
11
+ attr_accessor :update_request_id
12
+
13
+ # @override
14
+ def initialize(_from_message: false, update_request_id: nil)
15
+ @_from_message = _from_message
16
+ super
17
+ self.update_request_id = update_request_id
18
+ end
19
+
20
+ # @override
21
+ def schema
22
+ 'UpdateRequest'
23
+ end
24
+
25
+ # @override
26
+ def namespace
27
+ 'com.my-namespace.request'
28
+ end
29
+
30
+ # @override
31
+ def as_json(_opts={})
32
+ {
33
+ 'update_request_id' => @update_request_id
34
+ }
35
+ end
36
+ end
37
+ end; 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; module Response
5
+ ### Primary Schema Class ###
6
+ # Autogenerated Schema for Record at com.my-namespace.response.CreateTopic
7
+ class CreateTopic < AvroGen::SchemaClass::Record
8
+
9
+ ### Attribute Accessors ###
10
+ # @return [String]
11
+ attr_accessor :response_id
12
+
13
+ # @override
14
+ def initialize(_from_message: false, response_id: nil)
15
+ @_from_message = _from_message
16
+ super
17
+ self.response_id = response_id
18
+ end
19
+
20
+ # @override
21
+ def schema
22
+ 'CreateTopic'
23
+ end
24
+
25
+ # @override
26
+ def namespace
27
+ 'com.my-namespace.response'
28
+ end
29
+
30
+ # @override
31
+ def as_json(_opts={})
32
+ {
33
+ 'response_id' => @response_id
34
+ }
35
+ end
36
+ end
37
+ end; 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; module Response
5
+ ### Primary Schema Class ###
6
+ # Autogenerated Schema for Record at com.my-namespace.response.Index
7
+ class Index < AvroGen::SchemaClass::Record
8
+
9
+ ### Attribute Accessors ###
10
+ # @return [String]
11
+ attr_accessor :response_id
12
+
13
+ # @override
14
+ def initialize(_from_message: false, response_id: nil)
15
+ @_from_message = _from_message
16
+ super
17
+ self.response_id = response_id
18
+ end
19
+
20
+ # @override
21
+ def schema
22
+ 'Index'
23
+ end
24
+
25
+ # @override
26
+ def namespace
27
+ 'com.my-namespace.response'
28
+ end
29
+
30
+ # @override
31
+ def as_json(_opts={})
32
+ {
33
+ 'response_id' => @response_id
34
+ }
35
+ end
36
+ end
37
+ end; 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; module Response
5
+ ### Primary Schema Class ###
6
+ # Autogenerated Schema for Record at com.my-namespace.response.UpdateResponse
7
+ class UpdateResponse < AvroGen::SchemaClass::Record
8
+
9
+ ### Attribute Accessors ###
10
+ # @return [String]
11
+ attr_accessor :update_response_id
12
+
13
+ # @override
14
+ def initialize(_from_message: false, update_response_id: nil)
15
+ @_from_message = _from_message
16
+ super
17
+ self.update_response_id = update_response_id
18
+ end
19
+
20
+ # @override
21
+ def schema
22
+ 'UpdateResponse'
23
+ end
24
+
25
+ # @override
26
+ def namespace
27
+ 'com.my-namespace.response'
28
+ end
29
+
30
+ # @override
31
+ def as_json(_opts={})
32
+ {
33
+ 'update_response_id' => @update_response_id
34
+ }
35
+ end
36
+ end
37
+ end; end; end
@@ -0,0 +1,77 @@
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.Wibble
7
+ class Wibble < AvroGen::SchemaClass::Record
8
+
9
+ ### Attribute Accessors ###
10
+ # @return [Integer]
11
+ attr_accessor :id
12
+ # @return [Integer]
13
+ attr_accessor :wibble_id
14
+ # @return [String]
15
+ attr_accessor :name
16
+ # @return [String]
17
+ attr_accessor :floop
18
+ # @return [Integer]
19
+ attr_accessor :birthday_int
20
+ # @return [Integer]
21
+ attr_accessor :birthday_long
22
+ # @return [nil, Integer]
23
+ attr_accessor :birthday_optional
24
+ # @return [Integer]
25
+ attr_accessor :updated_at
26
+ # @return [Integer]
27
+ attr_accessor :created_at
28
+
29
+ # @override
30
+ def initialize(_from_message: false, id: nil,
31
+ wibble_id: nil,
32
+ name: nil,
33
+ floop: nil,
34
+ birthday_int: nil,
35
+ birthday_long: nil,
36
+ birthday_optional: nil,
37
+ updated_at: nil,
38
+ created_at: nil)
39
+ @_from_message = _from_message
40
+ super
41
+ self.id = id
42
+ self.wibble_id = wibble_id
43
+ self.name = name
44
+ self.floop = floop
45
+ self.birthday_int = birthday_int
46
+ self.birthday_long = birthday_long
47
+ self.birthday_optional = birthday_optional
48
+ self.updated_at = updated_at
49
+ self.created_at = created_at
50
+ end
51
+
52
+ # @override
53
+ def schema
54
+ 'Wibble'
55
+ end
56
+
57
+ # @override
58
+ def namespace
59
+ 'com.my-namespace'
60
+ end
61
+
62
+ # @override
63
+ def as_json(_opts={})
64
+ {
65
+ 'id' => @id,
66
+ 'wibble_id' => @wibble_id,
67
+ 'name' => @name,
68
+ 'floop' => @floop,
69
+ 'birthday_int' => @birthday_int,
70
+ 'birthday_long' => @birthday_long,
71
+ 'birthday_optional' => @birthday_optional,
72
+ 'updated_at' => @updated_at,
73
+ 'created_at' => @created_at
74
+ }
75
+ end
76
+ end
77
+ end; end
@@ -0,0 +1,57 @@
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.Widget
7
+ class Widget < AvroGen::SchemaClass::Record
8
+
9
+ ### Attribute Accessors ###
10
+ # @return [Integer]
11
+ attr_accessor :id
12
+ # @return [Integer]
13
+ attr_accessor :widget_id
14
+ # @return [String]
15
+ attr_accessor :name
16
+ # @return [Integer]
17
+ attr_accessor :updated_at
18
+ # @return [Integer]
19
+ attr_accessor :created_at
20
+
21
+ # @override
22
+ def initialize(_from_message: false, id: nil,
23
+ widget_id: nil,
24
+ name: nil,
25
+ updated_at: nil,
26
+ created_at: nil)
27
+ @_from_message = _from_message
28
+ super
29
+ self.id = id
30
+ self.widget_id = widget_id
31
+ self.name = name
32
+ self.updated_at = updated_at
33
+ self.created_at = created_at
34
+ end
35
+
36
+ # @override
37
+ def schema
38
+ 'Widget'
39
+ end
40
+
41
+ # @override
42
+ def namespace
43
+ 'com.my-namespace'
44
+ end
45
+
46
+ # @override
47
+ def as_json(_opts={})
48
+ {
49
+ 'id' => @id,
50
+ 'widget_id' => @widget_id,
51
+ 'name' => @name,
52
+ 'updated_at' => @updated_at,
53
+ 'created_at' => @created_at
54
+ }
55
+ end
56
+ end
57
+ end; end
@@ -0,0 +1,57 @@
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.WidgetTheSecond
7
+ class WidgetTheSecond < AvroGen::SchemaClass::Record
8
+
9
+ ### Attribute Accessors ###
10
+ # @return [Integer]
11
+ attr_accessor :id
12
+ # @return [Integer]
13
+ attr_accessor :widget_id
14
+ # @return [String]
15
+ attr_accessor :model_id
16
+ # @return [Integer]
17
+ attr_accessor :updated_at
18
+ # @return [Integer]
19
+ attr_accessor :created_at
20
+
21
+ # @override
22
+ def initialize(_from_message: false, id: nil,
23
+ widget_id: nil,
24
+ model_id: nil,
25
+ updated_at: nil,
26
+ created_at: nil)
27
+ @_from_message = _from_message
28
+ super
29
+ self.id = id
30
+ self.widget_id = widget_id
31
+ self.model_id = model_id
32
+ self.updated_at = updated_at
33
+ self.created_at = created_at
34
+ end
35
+
36
+ # @override
37
+ def schema
38
+ 'WidgetTheSecond'
39
+ end
40
+
41
+ # @override
42
+ def namespace
43
+ 'com.my-namespace'
44
+ end
45
+
46
+ # @override
47
+ def as_json(_opts={})
48
+ {
49
+ 'id' => @id,
50
+ 'widget_id' => @widget_id,
51
+ 'model_id' => @model_id,
52
+ 'updated_at' => @updated_at,
53
+ 'created_at' => @created_at
54
+ }
55
+ end
56
+ end
57
+ end; end