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,1800 @@
1
+ spec/app/lib/schema_classes/schemas/com/my_namespace/generated.rb:
2
+ # frozen_string_literal: true
3
+
4
+ # This file is autogenerated by AvroGen, Do NOT modify
5
+ module Schemas; module Com; module MyNamespace
6
+ ### Primary Schema Class ###
7
+ # Autogenerated Schema for Record at com.my-namespace.Generated
8
+ class Generated < AvroGen::SchemaClass::Record
9
+
10
+ ### Secondary Schema Classes ###
11
+ # Autogenerated Schema for Record at com.my-namespace.ARecord
12
+ class ARecord < AvroGen::SchemaClass::Record
13
+
14
+ ### Attribute Accessors ###
15
+ # @return [String]
16
+ attr_accessor :a_record_field
17
+
18
+ # @override
19
+ def initialize(_from_message: false, a_record_field: nil)
20
+ @_from_message = _from_message
21
+ super
22
+ self.a_record_field = a_record_field
23
+ end
24
+
25
+ # @override
26
+ def schema
27
+ 'ARecord'
28
+ end
29
+
30
+ # @override
31
+ def namespace
32
+ 'com.my-namespace'
33
+ end
34
+
35
+ # @override
36
+ def as_json(_opts={})
37
+ {
38
+ 'a_record_field' => @a_record_field
39
+ }
40
+ end
41
+ end
42
+
43
+ # Autogenerated Schema for Enum at com.my-namespace.AnEnum
44
+ class AnEnum < AvroGen::SchemaClass::Enum
45
+ # @override
46
+ def symbols
47
+ %w(sym1 sym2)
48
+ end
49
+
50
+
51
+ def sym1?
52
+ @value == 'sym1'
53
+ end
54
+
55
+ def sym2?
56
+ @value == 'sym2'
57
+ end
58
+
59
+ end
60
+
61
+
62
+ ### Attribute Readers ###
63
+ # @return [AnEnum]
64
+ attr_reader :an_enum
65
+ # @return [ARecord]
66
+ attr_reader :a_record
67
+
68
+ ### Attribute Accessors ###
69
+ # @return [String]
70
+ attr_accessor :a_string
71
+ # @return [Integer]
72
+ attr_accessor :a_int
73
+ # @return [Integer]
74
+ attr_accessor :a_long
75
+ # @return [Float]
76
+ attr_accessor :a_float
77
+ # @return [Float]
78
+ attr_accessor :a_double
79
+ # @return [nil, Integer]
80
+ attr_accessor :an_optional_int
81
+ # @return [Array<Integer>]
82
+ attr_accessor :an_array
83
+ # @return [Hash<String, String>]
84
+ attr_accessor :a_map
85
+ # @return [String]
86
+ attr_accessor :timestamp
87
+ # @return [String]
88
+ attr_accessor :message_id
89
+
90
+ ### Attribute Writers ###
91
+ # @return [AnEnum]
92
+ def an_enum=(value)
93
+ @an_enum = AnEnum.initialize_from_value(value, from_message: self._from_message)
94
+ end
95
+
96
+ # @return [ARecord]
97
+ def a_record=(value)
98
+ @a_record = ARecord.initialize_from_value(value, from_message: self._from_message)
99
+ end
100
+
101
+ # @override
102
+ def initialize(_from_message: false, a_string: nil,
103
+ a_int: nil,
104
+ a_long: nil,
105
+ a_float: nil,
106
+ a_double: nil,
107
+ an_optional_int: nil,
108
+ an_enum: nil,
109
+ an_array: nil,
110
+ a_map: nil,
111
+ timestamp: nil,
112
+ message_id: nil,
113
+ a_record: nil)
114
+ @_from_message = _from_message
115
+ super
116
+ self.a_string = a_string
117
+ self.a_int = a_int
118
+ self.a_long = a_long
119
+ self.a_float = a_float
120
+ self.a_double = a_double
121
+ self.an_optional_int = an_optional_int
122
+ self.an_enum = an_enum
123
+ self.an_array = an_array
124
+ self.a_map = a_map
125
+ self.timestamp = timestamp
126
+ self.message_id = message_id
127
+ self.a_record = a_record
128
+ end
129
+
130
+ # @override
131
+ def schema
132
+ 'Generated'
133
+ end
134
+
135
+ # @override
136
+ def namespace
137
+ 'com.my-namespace'
138
+ end
139
+
140
+ def self.tombstone(key)
141
+ record = self.allocate
142
+ record.tombstone_key = key
143
+ record.a_string = key
144
+ record
145
+ end
146
+
147
+ # @override
148
+ def as_json(_opts={})
149
+ {
150
+ 'a_string' => @a_string,
151
+ 'a_int' => @a_int,
152
+ 'a_long' => @a_long,
153
+ 'a_float' => @a_float,
154
+ 'a_double' => @a_double,
155
+ 'an_optional_int' => @an_optional_int,
156
+ 'an_enum' => @an_enum&.as_json,
157
+ 'an_array' => @an_array,
158
+ 'a_map' => @a_map,
159
+ 'timestamp' => @timestamp,
160
+ 'message_id' => @message_id,
161
+ 'a_record' => @a_record&.as_json
162
+ }
163
+ end
164
+ end
165
+ end; end; end
166
+
167
+
168
+ spec/app/lib/schema_classes/schemas/com/my_namespace/my_nested_schema.rb:
169
+ # frozen_string_literal: true
170
+
171
+ # This file is autogenerated by AvroGen, Do NOT modify
172
+ module Schemas; module Com; module MyNamespace
173
+ ### Primary Schema Class ###
174
+ # Autogenerated Schema for Record at com.my-namespace.MyNestedSchema
175
+ class MyNestedSchema < AvroGen::SchemaClass::Record
176
+
177
+ ### Secondary Schema Classes ###
178
+ # Autogenerated Schema for Record at com.my-namespace.MyNestedRecord
179
+ class MyNestedRecord < AvroGen::SchemaClass::Record
180
+
181
+ ### Attribute Accessors ###
182
+ # @return [Integer]
183
+ attr_accessor :some_int
184
+ # @return [Float]
185
+ attr_accessor :some_float
186
+ # @return [String]
187
+ attr_accessor :some_string
188
+ # @return [nil, Integer]
189
+ attr_accessor :some_optional_int
190
+
191
+ # @override
192
+ def initialize(_from_message: false, some_int: nil,
193
+ some_float: nil,
194
+ some_string: nil,
195
+ some_optional_int: nil)
196
+ @_from_message = _from_message
197
+ super
198
+ self.some_int = some_int
199
+ self.some_float = some_float
200
+ self.some_string = some_string
201
+ self.some_optional_int = some_optional_int
202
+ end
203
+
204
+ # @override
205
+ def schema
206
+ 'MyNestedRecord'
207
+ end
208
+
209
+ # @override
210
+ def namespace
211
+ 'com.my-namespace'
212
+ end
213
+
214
+ # @override
215
+ def as_json(_opts={})
216
+ {
217
+ 'some_int' => @some_int,
218
+ 'some_float' => @some_float,
219
+ 'some_string' => @some_string,
220
+ 'some_optional_int' => @some_optional_int
221
+ }
222
+ end
223
+ end
224
+
225
+
226
+ ### Attribute Readers ###
227
+ # @return [MyNestedRecord]
228
+ attr_reader :some_nested_record
229
+ # @return [nil, MyNestedRecord]
230
+ attr_reader :some_optional_record
231
+
232
+ ### Attribute Accessors ###
233
+ # @return [String]
234
+ attr_accessor :test_id
235
+ # @return [Float]
236
+ attr_accessor :test_float
237
+ # @return [Array<String>]
238
+ attr_accessor :test_array
239
+
240
+ ### Attribute Writers ###
241
+ # @return [MyNestedRecord]
242
+ def some_nested_record=(value)
243
+ @some_nested_record = MyNestedRecord.initialize_from_value(value, from_message: self._from_message)
244
+ end
245
+
246
+ # @return [nil, MyNestedRecord]
247
+ def some_optional_record=(value)
248
+ @some_optional_record = MyNestedRecord.initialize_from_value(value, from_message: self._from_message)
249
+ end
250
+
251
+ # @override
252
+ def initialize(_from_message: false, test_id: nil,
253
+ test_float: nil,
254
+ test_array: nil,
255
+ some_nested_record: nil,
256
+ some_optional_record: nil)
257
+ @_from_message = _from_message
258
+ super
259
+ self.test_id = test_id
260
+ self.test_float = test_float
261
+ self.test_array = test_array
262
+ self.some_nested_record = some_nested_record
263
+ self.some_optional_record = some_optional_record
264
+ end
265
+
266
+ # @override
267
+ def schema
268
+ 'MyNestedSchema'
269
+ end
270
+
271
+ # @override
272
+ def namespace
273
+ 'com.my-namespace'
274
+ end
275
+
276
+ # @override
277
+ def as_json(_opts={})
278
+ {
279
+ 'test_id' => @test_id,
280
+ 'test_float' => @test_float,
281
+ 'test_array' => @test_array,
282
+ 'some_nested_record' => @some_nested_record&.as_json,
283
+ 'some_optional_record' => @some_optional_record&.as_json
284
+ }
285
+ end
286
+ end
287
+ end; end; end
288
+
289
+
290
+ spec/app/lib/schema_classes/schemas/com/my_namespace/my_schema.rb:
291
+ # frozen_string_literal: true
292
+
293
+ # This file is autogenerated by AvroGen, Do NOT modify
294
+ module Schemas; module Com; module MyNamespace
295
+ ### Primary Schema Class ###
296
+ # Autogenerated Schema for Record at com.my-namespace.MySchema
297
+ class MySchema < AvroGen::SchemaClass::Record
298
+
299
+ ### Attribute Accessors ###
300
+ # @return [String]
301
+ attr_accessor :test_id
302
+ # @return [Integer]
303
+ attr_accessor :some_int
304
+
305
+ # @override
306
+ def initialize(_from_message: false, test_id: nil,
307
+ some_int: nil)
308
+ @_from_message = _from_message
309
+ super
310
+ self.test_id = test_id
311
+ self.some_int = some_int
312
+ end
313
+
314
+ # @override
315
+ def schema
316
+ 'MySchema'
317
+ end
318
+
319
+ # @override
320
+ def namespace
321
+ 'com.my-namespace'
322
+ end
323
+
324
+ # @override
325
+ def as_json(_opts={})
326
+ {
327
+ 'test_id' => @test_id,
328
+ 'some_int' => @some_int
329
+ }
330
+ end
331
+ end
332
+ end; end; end
333
+
334
+
335
+ spec/app/lib/schema_classes/schemas/com/my_namespace/my_schema_compound_key.rb:
336
+ # frozen_string_literal: true
337
+
338
+ # This file is autogenerated by AvroGen, Do NOT modify
339
+ module Schemas; module Com; module MyNamespace
340
+ ### Primary Schema Class ###
341
+ # Autogenerated Schema for Record at com.my-namespace.MySchemaCompound_key
342
+ class MySchemaCompoundKey < AvroGen::SchemaClass::Record
343
+
344
+ ### Attribute Accessors ###
345
+ # @return [String]
346
+ attr_accessor :part_one
347
+ # @return [String]
348
+ attr_accessor :part_two
349
+
350
+ # @override
351
+ def initialize(_from_message: false, part_one: nil,
352
+ part_two: nil)
353
+ @_from_message = _from_message
354
+ super
355
+ self.part_one = part_one
356
+ self.part_two = part_two
357
+ end
358
+
359
+ # @override
360
+ def schema
361
+ 'MySchemaCompound_key'
362
+ end
363
+
364
+ # @override
365
+ def namespace
366
+ 'com.my-namespace'
367
+ end
368
+
369
+ # @override
370
+ def as_json(_opts={})
371
+ {
372
+ 'part_one' => @part_one,
373
+ 'part_two' => @part_two
374
+ }
375
+ end
376
+ end
377
+ end; end; end
378
+
379
+
380
+ spec/app/lib/schema_classes/schemas/com/my_namespace/my_schema_id_key.rb:
381
+ # frozen_string_literal: true
382
+
383
+ # This file is autogenerated by AvroGen, Do NOT modify
384
+ module Schemas; module Com; module MyNamespace
385
+ ### Primary Schema Class ###
386
+ # Autogenerated Schema for Record at com.my-namespace.MySchemaId_key
387
+ class MySchemaIdKey < AvroGen::SchemaClass::Record
388
+
389
+ ### Attribute Accessors ###
390
+ # @return [Integer]
391
+ attr_accessor :id
392
+
393
+ # @override
394
+ def initialize(_from_message: false, id: nil)
395
+ @_from_message = _from_message
396
+ super
397
+ self.id = id
398
+ end
399
+
400
+ # @override
401
+ def schema
402
+ 'MySchemaId_key'
403
+ end
404
+
405
+ # @override
406
+ def namespace
407
+ 'com.my-namespace'
408
+ end
409
+
410
+ # @override
411
+ def as_json(_opts={})
412
+ {
413
+ 'id' => @id
414
+ }
415
+ end
416
+ end
417
+ end; end; end
418
+
419
+
420
+ spec/app/lib/schema_classes/schemas/com/my_namespace/my_schema_key.rb:
421
+ # frozen_string_literal: true
422
+
423
+ # This file is autogenerated by AvroGen, Do NOT modify
424
+ module Schemas; module Com; module MyNamespace
425
+ ### Primary Schema Class ###
426
+ # Autogenerated Schema for Record at com.my-namespace.MySchema_key
427
+ class MySchemaKey < AvroGen::SchemaClass::Record
428
+
429
+ ### Attribute Accessors ###
430
+ # @return [String]
431
+ attr_accessor :test_id
432
+
433
+ # @override
434
+ def initialize(_from_message: false, test_id: nil)
435
+ @_from_message = _from_message
436
+ super
437
+ self.test_id = test_id
438
+ end
439
+
440
+ # @override
441
+ def schema
442
+ 'MySchema_key'
443
+ end
444
+
445
+ # @override
446
+ def namespace
447
+ 'com.my-namespace'
448
+ end
449
+
450
+ # @override
451
+ def as_json(_opts={})
452
+ {
453
+ 'test_id' => @test_id
454
+ }
455
+ end
456
+ end
457
+ end; end; end
458
+
459
+
460
+ spec/app/lib/schema_classes/schemas/com/my_namespace/my_schema_with_boolean.rb:
461
+ # frozen_string_literal: true
462
+
463
+ # This file is autogenerated by AvroGen, Do NOT modify
464
+ module Schemas; module Com; module MyNamespace
465
+ ### Primary Schema Class ###
466
+ # Autogenerated Schema for Record at com.my-namespace.MySchemaWithBooleans
467
+ class MySchemaWithBoolean < AvroGen::SchemaClass::Record
468
+
469
+ ### Attribute Accessors ###
470
+ # @return [String]
471
+ attr_accessor :test_id
472
+ # @return [Boolean]
473
+ attr_accessor :some_bool
474
+
475
+ # @override
476
+ def initialize(_from_message: false, test_id: nil,
477
+ some_bool: nil)
478
+ @_from_message = _from_message
479
+ super
480
+ self.test_id = test_id
481
+ self.some_bool = some_bool
482
+ end
483
+
484
+ # @override
485
+ def schema
486
+ 'MySchemaWithBooleans'
487
+ end
488
+
489
+ # @override
490
+ def namespace
491
+ 'com.my-namespace'
492
+ end
493
+
494
+ # @override
495
+ def as_json(_opts={})
496
+ {
497
+ 'test_id' => @test_id,
498
+ 'some_bool' => @some_bool
499
+ }
500
+ end
501
+ end
502
+ end; end; end
503
+
504
+
505
+ spec/app/lib/schema_classes/schemas/com/my_namespace/my_schema_with_circular_reference.rb:
506
+ # frozen_string_literal: true
507
+
508
+ # This file is autogenerated by AvroGen, Do NOT modify
509
+ module Schemas; module Com; module MyNamespace
510
+ ### Primary Schema Class ###
511
+ # Autogenerated Schema for Record at com.my-namespace.MySchemaWithCircularReference
512
+ class MySchemaWithCircularReference < AvroGen::SchemaClass::Record
513
+
514
+ ### Secondary Schema Classes ###
515
+ # Autogenerated Schema for Record at com.my-namespace.Property
516
+ class Property < AvroGen::SchemaClass::Record
517
+
518
+ ### Attribute Accessors ###
519
+ # @return [Boolean, Integer, Integer, Float, Float, String, Array<Property>, Hash<String, Property>]
520
+ attr_accessor :property
521
+
522
+ # @override
523
+ def initialize(_from_message: false, property: nil)
524
+ @_from_message = _from_message
525
+ super
526
+ self.property = property
527
+ end
528
+
529
+ # @override
530
+ def schema
531
+ 'Property'
532
+ end
533
+
534
+ # @override
535
+ def namespace
536
+ 'com.my-namespace'
537
+ end
538
+
539
+ # @override
540
+ def as_json(_opts={})
541
+ {
542
+ 'property' => @property
543
+ }
544
+ end
545
+ end
546
+
547
+
548
+ ### Attribute Readers ###
549
+ # @return [Hash<String, Property>]
550
+ attr_reader :properties
551
+
552
+ ### Attribute Writers ###
553
+ # @return [Hash<String, Property>]
554
+ def properties=(values)
555
+ @properties = values&.transform_values do |value|
556
+ Property.initialize_from_value(value, from_message: self._from_message)
557
+ end
558
+ end
559
+
560
+ # @override
561
+ def initialize(_from_message: false, properties: {})
562
+ @_from_message = _from_message
563
+ super
564
+ self.properties = properties
565
+ end
566
+
567
+ # @override
568
+ def schema
569
+ 'MySchemaWithCircularReference'
570
+ end
571
+
572
+ # @override
573
+ def namespace
574
+ 'com.my-namespace'
575
+ end
576
+
577
+ # @override
578
+ def as_json(_opts={})
579
+ {
580
+ 'properties' => @properties.transform_values { |v| v&.as_json }
581
+ }
582
+ end
583
+ end
584
+ end; end; end
585
+
586
+
587
+ spec/app/lib/schema_classes/schemas/com/my_namespace/my_schema_with_complex_type.rb:
588
+ # frozen_string_literal: true
589
+
590
+ # This file is autogenerated by AvroGen, Do NOT modify
591
+ module Schemas; module Com; module MyNamespace
592
+ ### Primary Schema Class ###
593
+ # Autogenerated Schema for Record at com.my-namespace.MySchemaWithComplexTypes
594
+ class MySchemaWithComplexType < AvroGen::SchemaClass::Record
595
+
596
+ ### Secondary Schema Classes ###
597
+ # Autogenerated Schema for Record at com.my-namespace.ARecord
598
+ class ARecord < AvroGen::SchemaClass::Record
599
+
600
+ ### Attribute Accessors ###
601
+ # @return [String]
602
+ attr_accessor :a_record_field
603
+
604
+ # @override
605
+ def initialize(_from_message: false, a_record_field: nil)
606
+ @_from_message = _from_message
607
+ super
608
+ self.a_record_field = a_record_field
609
+ end
610
+
611
+ # @override
612
+ def schema
613
+ 'ARecord'
614
+ end
615
+
616
+ # @override
617
+ def namespace
618
+ 'com.my-namespace'
619
+ end
620
+
621
+ # @override
622
+ def as_json(_opts={})
623
+ {
624
+ 'a_record_field' => @a_record_field
625
+ }
626
+ end
627
+ end
628
+
629
+ # Autogenerated Schema for Enum at com.my-namespace.AnEnum
630
+ class AnEnum < AvroGen::SchemaClass::Enum
631
+ # @override
632
+ def symbols
633
+ %w(sym1 sym2)
634
+ end
635
+
636
+
637
+ def sym1?
638
+ @value == 'sym1'
639
+ end
640
+
641
+ def sym2?
642
+ @value == 'sym2'
643
+ end
644
+
645
+ end
646
+
647
+ # Autogenerated Schema for Enum at com.my-namespace.AnotherEnum
648
+ class AnotherEnum < AvroGen::SchemaClass::Enum
649
+ # @override
650
+ def symbols
651
+ %w(sym3 sym4)
652
+ end
653
+
654
+
655
+ def sym3?
656
+ @value == 'sym3'
657
+ end
658
+
659
+ def sym4?
660
+ @value == 'sym4'
661
+ end
662
+
663
+ end
664
+
665
+ # Autogenerated Schema for Enum at com.my-namespace.YetAnotherEnum
666
+ class YetAnotherEnum < AvroGen::SchemaClass::Enum
667
+ # @override
668
+ def symbols
669
+ %w(sym5 sym6)
670
+ end
671
+
672
+
673
+ def sym5?
674
+ @value == 'sym5'
675
+ end
676
+
677
+ def sym6?
678
+ @value == 'sym6'
679
+ end
680
+
681
+ end
682
+
683
+
684
+ ### Attribute Readers ###
685
+ # @return [ARecord]
686
+ attr_reader :some_record
687
+ # @return [nil, ARecord]
688
+ attr_reader :some_optional_record
689
+ # @return [Array<ARecord>]
690
+ attr_reader :some_record_array
691
+ # @return [Hash<String, ARecord>]
692
+ attr_reader :some_record_map
693
+ # @return [Array<AnEnum>]
694
+ attr_reader :some_enum_array
695
+ # @return [nil, AnotherEnum]
696
+ attr_reader :some_optional_enum
697
+ # @return [YetAnotherEnum]
698
+ attr_reader :some_enum_with_default
699
+
700
+ ### Attribute Accessors ###
701
+ # @return [String]
702
+ attr_accessor :test_id
703
+ # @return [String, nil]
704
+ attr_accessor :union_string
705
+ # @return [Float]
706
+ attr_accessor :test_float
707
+ # @return [Array<String>]
708
+ attr_accessor :test_string_array
709
+ # @return [Array<Integer>]
710
+ attr_accessor :test_int_array
711
+ # @return [Integer, nil]
712
+ attr_accessor :test_optional_int
713
+ # @return [Hash<String, Integer>]
714
+ attr_accessor :some_integer_map
715
+
716
+ ### Attribute Writers ###
717
+ # @return [ARecord]
718
+ def some_record=(value)
719
+ @some_record = ARecord.initialize_from_value(value, from_message: self._from_message)
720
+ end
721
+
722
+ # @return [nil, ARecord]
723
+ def some_optional_record=(value)
724
+ @some_optional_record = ARecord.initialize_from_value(value, from_message: self._from_message)
725
+ end
726
+
727
+ # @return [Array<ARecord>]
728
+ def some_record_array=(values)
729
+ @some_record_array = values&.map do |value|
730
+ ARecord.initialize_from_value(value, from_message: self._from_message)
731
+ end
732
+ end
733
+
734
+ # @return [Hash<String, ARecord>]
735
+ def some_record_map=(values)
736
+ @some_record_map = values&.transform_values do |value|
737
+ ARecord.initialize_from_value(value, from_message: self._from_message)
738
+ end
739
+ end
740
+
741
+ # @return [Array<AnEnum>]
742
+ def some_enum_array=(values)
743
+ @some_enum_array = values&.map do |value|
744
+ AnEnum.initialize_from_value(value, from_message: self._from_message)
745
+ end
746
+ end
747
+
748
+ # @return [nil, AnotherEnum]
749
+ def some_optional_enum=(value)
750
+ @some_optional_enum = AnotherEnum.initialize_from_value(value, from_message: self._from_message)
751
+ end
752
+
753
+ # @return [YetAnotherEnum]
754
+ def some_enum_with_default=(value)
755
+ @some_enum_with_default = YetAnotherEnum.initialize_from_value(value, from_message: self._from_message)
756
+ end
757
+
758
+ # @override
759
+ def initialize(_from_message: false, test_id: nil,
760
+ union_string: "",
761
+ test_float: nil,
762
+ test_string_array: ["test"],
763
+ test_int_array: [123],
764
+ test_optional_int: 123,
765
+ some_integer_map: {"abc"=>123},
766
+ some_record: {"a_record_field"=>"Test String"},
767
+ some_optional_record: nil,
768
+ some_record_array: nil,
769
+ some_record_map: nil,
770
+ some_enum_array: nil,
771
+ some_optional_enum: nil,
772
+ some_enum_with_default: "sym6")
773
+ @_from_message = _from_message
774
+ super
775
+ self.test_id = test_id
776
+ self.union_string = union_string
777
+ self.test_float = test_float
778
+ self.test_string_array = test_string_array
779
+ self.test_int_array = test_int_array
780
+ self.test_optional_int = test_optional_int
781
+ self.some_integer_map = some_integer_map
782
+ self.some_record = some_record
783
+ self.some_optional_record = some_optional_record
784
+ self.some_record_array = some_record_array
785
+ self.some_record_map = some_record_map
786
+ self.some_enum_array = some_enum_array
787
+ self.some_optional_enum = some_optional_enum
788
+ self.some_enum_with_default = some_enum_with_default
789
+ end
790
+
791
+ # @override
792
+ def schema
793
+ 'MySchemaWithComplexTypes'
794
+ end
795
+
796
+ # @override
797
+ def namespace
798
+ 'com.my-namespace'
799
+ end
800
+
801
+ # @override
802
+ def as_json(_opts={})
803
+ {
804
+ 'test_id' => @test_id,
805
+ 'union_string' => @union_string,
806
+ 'test_float' => @test_float,
807
+ 'test_string_array' => @test_string_array,
808
+ 'test_int_array' => @test_int_array,
809
+ 'test_optional_int' => @test_optional_int,
810
+ 'some_integer_map' => @some_integer_map,
811
+ 'some_record' => @some_record&.as_json,
812
+ 'some_optional_record' => @some_optional_record&.as_json,
813
+ 'some_record_array' => @some_record_array.map { |v| v&.as_json },
814
+ 'some_record_map' => @some_record_map.transform_values { |v| v&.as_json },
815
+ 'some_enum_array' => @some_enum_array.map { |v| v&.as_json },
816
+ 'some_optional_enum' => @some_optional_enum&.as_json,
817
+ 'some_enum_with_default' => @some_enum_with_default&.as_json
818
+ }
819
+ end
820
+ end
821
+ end; end; end
822
+
823
+
824
+ spec/app/lib/schema_classes/schemas/com/my_namespace/my_schema_with_date_time.rb:
825
+ # frozen_string_literal: true
826
+
827
+ # This file is autogenerated by AvroGen, Do NOT modify
828
+ module Schemas; module Com; module MyNamespace
829
+ ### Primary Schema Class ###
830
+ # Autogenerated Schema for Record at com.my-namespace.MySchemaWithDateTimes
831
+ class MySchemaWithDateTime < AvroGen::SchemaClass::Record
832
+
833
+ ### Attribute Accessors ###
834
+ # @return [String]
835
+ attr_accessor :test_id
836
+ # @return [Integer, nil]
837
+ attr_accessor :updated_at
838
+ # @return [nil, Integer]
839
+ attr_accessor :some_int
840
+ # @return [nil, Integer]
841
+ attr_accessor :some_datetime_int
842
+ # @return [String]
843
+ attr_accessor :timestamp
844
+
845
+ # @override
846
+ def initialize(_from_message: false, test_id: nil,
847
+ updated_at: nil,
848
+ some_int: nil,
849
+ some_datetime_int: nil,
850
+ timestamp: nil)
851
+ @_from_message = _from_message
852
+ super
853
+ self.test_id = test_id
854
+ self.updated_at = updated_at
855
+ self.some_int = some_int
856
+ self.some_datetime_int = some_datetime_int
857
+ self.timestamp = timestamp
858
+ end
859
+
860
+ # @override
861
+ def schema
862
+ 'MySchemaWithDateTimes'
863
+ end
864
+
865
+ # @override
866
+ def namespace
867
+ 'com.my-namespace'
868
+ end
869
+
870
+ # @override
871
+ def as_json(_opts={})
872
+ {
873
+ 'test_id' => @test_id,
874
+ 'updated_at' => @updated_at,
875
+ 'some_int' => @some_int,
876
+ 'some_datetime_int' => @some_datetime_int,
877
+ 'timestamp' => @timestamp
878
+ }
879
+ end
880
+ end
881
+ end; end; end
882
+
883
+
884
+ spec/app/lib/schema_classes/schemas/com/my_namespace/my_schema_with_id.rb:
885
+ # frozen_string_literal: true
886
+
887
+ # This file is autogenerated by AvroGen, Do NOT modify
888
+ module Schemas; module Com; module MyNamespace
889
+ ### Primary Schema Class ###
890
+ # Autogenerated Schema for Record at com.my-namespace.MySchemaWithId
891
+ class MySchemaWithId < AvroGen::SchemaClass::Record
892
+
893
+ ### Attribute Accessors ###
894
+ # @return [String]
895
+ attr_accessor :test_id
896
+ # @return [Integer]
897
+ attr_accessor :some_int
898
+ # @return [String]
899
+ attr_accessor :message_id
900
+ # @return [String]
901
+ attr_accessor :timestamp
902
+
903
+ # @override
904
+ def initialize(_from_message: false, test_id: nil,
905
+ some_int: nil,
906
+ message_id: nil,
907
+ timestamp: nil)
908
+ @_from_message = _from_message
909
+ super
910
+ self.test_id = test_id
911
+ self.some_int = some_int
912
+ self.message_id = message_id
913
+ self.timestamp = timestamp
914
+ end
915
+
916
+ # @override
917
+ def schema
918
+ 'MySchemaWithId'
919
+ end
920
+
921
+ # @override
922
+ def namespace
923
+ 'com.my-namespace'
924
+ end
925
+
926
+ # @override
927
+ def as_json(_opts={})
928
+ {
929
+ 'test_id' => @test_id,
930
+ 'some_int' => @some_int,
931
+ 'message_id' => @message_id,
932
+ 'timestamp' => @timestamp
933
+ }
934
+ end
935
+ end
936
+ end; end; end
937
+
938
+
939
+ spec/app/lib/schema_classes/schemas/com/my_namespace/my_schema_with_title.rb:
940
+ # frozen_string_literal: true
941
+
942
+ # This file is autogenerated by AvroGen, Do NOT modify
943
+ module Schemas; module Com; module MyNamespace
944
+ ### Primary Schema Class ###
945
+ # Autogenerated Schema for Record at com.my-namespace.MySchemaWithTitle
946
+ class MySchemaWithTitle < AvroGen::SchemaClass::Record
947
+
948
+ ### Attribute Accessors ###
949
+ # @return [String]
950
+ attr_accessor :test_id
951
+ # @return [Integer]
952
+ attr_accessor :some_int
953
+ # @return [String]
954
+ attr_accessor :title
955
+
956
+ # @override
957
+ def initialize(_from_message: false, test_id: nil,
958
+ some_int: nil,
959
+ title: nil)
960
+ @_from_message = _from_message
961
+ super
962
+ self.test_id = test_id
963
+ self.some_int = some_int
964
+ self.title = title
965
+ end
966
+
967
+ # @override
968
+ def schema
969
+ 'MySchemaWithTitle'
970
+ end
971
+
972
+ # @override
973
+ def namespace
974
+ 'com.my-namespace'
975
+ end
976
+
977
+ # @override
978
+ def as_json(_opts={})
979
+ {
980
+ 'test_id' => @test_id,
981
+ 'some_int' => @some_int,
982
+ 'title' => @title
983
+ }
984
+ end
985
+ end
986
+ end; end; end
987
+
988
+
989
+ spec/app/lib/schema_classes/schemas/com/my_namespace/my_schema_with_union_type.rb:
990
+ # frozen_string_literal: true
991
+
992
+ # This file is autogenerated by AvroGen, Do NOT modify
993
+ module Schemas; module Com; module MyNamespace
994
+ ### Primary Schema Class ###
995
+ # Autogenerated Schema for Record at com.my-namespace.MySchemaWithUnionType
996
+ class MySchemaWithUnionType < AvroGen::SchemaClass::Record
997
+
998
+ ### Secondary Schema Classes ###
999
+ # Autogenerated Schema for Record at com.flipp.content.Record1
1000
+ class Record1 < AvroGen::SchemaClass::Record
1001
+
1002
+ ### Attribute Accessors ###
1003
+ # @return [Hash<String, Integer>]
1004
+ attr_accessor :record1_map
1005
+ # @return [Integer]
1006
+ attr_accessor :record1_id
1007
+
1008
+ # @override
1009
+ def initialize(_from_message: false, record1_map: {},
1010
+ record1_id: 0)
1011
+ @_from_message = _from_message
1012
+ super
1013
+ self.record1_map = record1_map
1014
+ self.record1_id = record1_id
1015
+ end
1016
+
1017
+ # @override
1018
+ def schema
1019
+ 'Record1'
1020
+ end
1021
+
1022
+ # @override
1023
+ def namespace
1024
+ 'com.flipp.content'
1025
+ end
1026
+
1027
+ # @override
1028
+ def as_json(_opts={})
1029
+ {
1030
+ 'record1_map' => @record1_map,
1031
+ 'record1_id' => @record1_id
1032
+ }
1033
+ end
1034
+ end
1035
+
1036
+ # Autogenerated Schema for Record at com.flipp.content.Record2
1037
+ class Record2 < AvroGen::SchemaClass::Record
1038
+
1039
+ ### Attribute Accessors ###
1040
+ # @return [String]
1041
+ attr_accessor :record2_id
1042
+
1043
+ # @override
1044
+ def initialize(_from_message: false, record2_id: "")
1045
+ @_from_message = _from_message
1046
+ super
1047
+ self.record2_id = record2_id
1048
+ end
1049
+
1050
+ # @override
1051
+ def schema
1052
+ 'Record2'
1053
+ end
1054
+
1055
+ # @override
1056
+ def namespace
1057
+ 'com.flipp.content'
1058
+ end
1059
+
1060
+ # @override
1061
+ def as_json(_opts={})
1062
+ {
1063
+ 'record2_id' => @record2_id
1064
+ }
1065
+ end
1066
+ end
1067
+
1068
+ # Autogenerated Schema for Record at com.flipp.content.Record3
1069
+ class Record3 < AvroGen::SchemaClass::Record
1070
+
1071
+ ### Attribute Accessors ###
1072
+ # @return [Float]
1073
+ attr_accessor :record3_id
1074
+
1075
+ # @override
1076
+ def initialize(_from_message: false, record3_id: 0.0)
1077
+ @_from_message = _from_message
1078
+ super
1079
+ self.record3_id = record3_id
1080
+ end
1081
+
1082
+ # @override
1083
+ def schema
1084
+ 'Record3'
1085
+ end
1086
+
1087
+ # @override
1088
+ def namespace
1089
+ 'com.flipp.content'
1090
+ end
1091
+
1092
+ # @override
1093
+ def as_json(_opts={})
1094
+ {
1095
+ 'record3_id' => @record3_id
1096
+ }
1097
+ end
1098
+ end
1099
+
1100
+ # Autogenerated Schema for Record at com.flipp.content.Record4
1101
+ class Record4 < AvroGen::SchemaClass::Record
1102
+
1103
+ ### Attribute Accessors ###
1104
+ # @return [Integer]
1105
+ attr_accessor :record4_id
1106
+
1107
+ # @override
1108
+ def initialize(_from_message: false, record4_id: 0)
1109
+ @_from_message = _from_message
1110
+ super
1111
+ self.record4_id = record4_id
1112
+ end
1113
+
1114
+ # @override
1115
+ def schema
1116
+ 'Record4'
1117
+ end
1118
+
1119
+ # @override
1120
+ def namespace
1121
+ 'com.flipp.content'
1122
+ end
1123
+
1124
+ # @override
1125
+ def as_json(_opts={})
1126
+ {
1127
+ 'record4_id' => @record4_id
1128
+ }
1129
+ end
1130
+ end
1131
+
1132
+
1133
+ ### Attribute Readers ###
1134
+ # @return [nil, Record1, Record2, Record3, Record4, Integer, Array<String>]
1135
+ attr_reader :test_union_type
1136
+
1137
+ ### Attribute Accessors ###
1138
+ # @return [String]
1139
+ attr_accessor :test_id
1140
+ # @return [nil, Integer]
1141
+ attr_accessor :test_long
1142
+
1143
+ ### Attribute Writers ###
1144
+ # @return [nil, Record1, Record2, Record3, Record4, Integer, Array<String>]
1145
+ def test_union_type=(value)
1146
+ @test_union_type = initialize_test_union_type_type(value, from_message: self._from_message)
1147
+ end
1148
+
1149
+ # Helper method to determine which schema type to use for test_union_type
1150
+ # @param value [Hash, nil]
1151
+ # @param from_message [Boolean] whether this was initialized from a real Avro message
1152
+ # @return [Object, nil]
1153
+ def initialize_test_union_type_type(value, from_message: false)
1154
+ return nil if value.nil?
1155
+
1156
+ klass = [Record1, Record2, Record3, Record4].find do |candidate|
1157
+ fields = candidate.new.as_json.keys
1158
+ (value.keys - fields).empty?
1159
+ end
1160
+
1161
+ klass.initialize_from_value(value, from_message: self._from_message)
1162
+ end
1163
+
1164
+ # @override
1165
+ def initialize(_from_message: false, test_id: "",
1166
+ test_long: nil,
1167
+ test_union_type: nil)
1168
+ @_from_message = _from_message
1169
+ super
1170
+ self.test_id = test_id
1171
+ self.test_long = test_long
1172
+ self.test_union_type = test_union_type
1173
+ end
1174
+
1175
+ # @override
1176
+ def schema
1177
+ 'MySchemaWithUnionType'
1178
+ end
1179
+
1180
+ # @override
1181
+ def namespace
1182
+ 'com.my-namespace'
1183
+ end
1184
+
1185
+ # @override
1186
+ def as_json(_opts={})
1187
+ {
1188
+ 'test_id' => @test_id,
1189
+ 'test_long' => @test_long,
1190
+ 'test_union_type' => @test_union_type&.as_json
1191
+ }
1192
+ end
1193
+ end
1194
+ end; end; end
1195
+
1196
+
1197
+ spec/app/lib/schema_classes/schemas/com/my_namespace/my_schema_with_unique_id.rb:
1198
+ # frozen_string_literal: true
1199
+
1200
+ # This file is autogenerated by AvroGen, Do NOT modify
1201
+ module Schemas; module Com; module MyNamespace
1202
+ ### Primary Schema Class ###
1203
+ # Autogenerated Schema for Record at com.my-namespace.MySchemaWithUniqueId
1204
+ class MySchemaWithUniqueId < AvroGen::SchemaClass::Record
1205
+
1206
+ ### Attribute Accessors ###
1207
+ # @return [Integer]
1208
+ attr_accessor :id
1209
+ # @return [String]
1210
+ attr_accessor :test_id
1211
+ # @return [Integer]
1212
+ attr_accessor :some_int
1213
+ # @return [String]
1214
+ attr_accessor :message_id
1215
+ # @return [String]
1216
+ attr_accessor :timestamp
1217
+
1218
+ # @override
1219
+ def initialize(_from_message: false, id: nil,
1220
+ test_id: nil,
1221
+ some_int: nil,
1222
+ message_id: nil,
1223
+ timestamp: nil)
1224
+ @_from_message = _from_message
1225
+ super
1226
+ self.id = id
1227
+ self.test_id = test_id
1228
+ self.some_int = some_int
1229
+ self.message_id = message_id
1230
+ self.timestamp = timestamp
1231
+ end
1232
+
1233
+ # @override
1234
+ def schema
1235
+ 'MySchemaWithUniqueId'
1236
+ end
1237
+
1238
+ # @override
1239
+ def namespace
1240
+ 'com.my-namespace'
1241
+ end
1242
+
1243
+ # @override
1244
+ def as_json(_opts={})
1245
+ {
1246
+ 'id' => @id,
1247
+ 'test_id' => @test_id,
1248
+ 'some_int' => @some_int,
1249
+ 'message_id' => @message_id,
1250
+ 'timestamp' => @timestamp
1251
+ }
1252
+ end
1253
+ end
1254
+ end; end; end
1255
+
1256
+
1257
+ spec/app/lib/schema_classes/schemas/com/my_namespace/my_suborg/my_long_namespace_schema.rb:
1258
+ # frozen_string_literal: true
1259
+
1260
+ # This file is autogenerated by AvroGen, Do NOT modify
1261
+ module Schemas; module Com; module MyNamespace; module MySuborg
1262
+ ### Primary Schema Class ###
1263
+ # Autogenerated Schema for Record at com.my-namespace.my-suborg.MyLongNamespaceSchema
1264
+ class MyLongNamespaceSchema < AvroGen::SchemaClass::Record
1265
+
1266
+ ### Attribute Accessors ###
1267
+ # @return [String]
1268
+ attr_accessor :test_id
1269
+ # @return [Integer]
1270
+ attr_accessor :some_int
1271
+
1272
+ # @override
1273
+ def initialize(_from_message: false, test_id: nil,
1274
+ some_int: nil)
1275
+ @_from_message = _from_message
1276
+ super
1277
+ self.test_id = test_id
1278
+ self.some_int = some_int
1279
+ end
1280
+
1281
+ # @override
1282
+ def schema
1283
+ 'MyLongNamespaceSchema'
1284
+ end
1285
+
1286
+ # @override
1287
+ def namespace
1288
+ 'com.my-namespace.my-suborg'
1289
+ end
1290
+
1291
+ # @override
1292
+ def as_json(_opts={})
1293
+ {
1294
+ 'test_id' => @test_id,
1295
+ 'some_int' => @some_int
1296
+ }
1297
+ end
1298
+ end
1299
+ end; end; end; end
1300
+
1301
+
1302
+ spec/app/lib/schema_classes/schemas/com/my_namespace/request/create_topic.rb:
1303
+ # frozen_string_literal: true
1304
+
1305
+ # This file is autogenerated by AvroGen, Do NOT modify
1306
+ module Schemas; module Com; module MyNamespace; module Request
1307
+ ### Primary Schema Class ###
1308
+ # Autogenerated Schema for Record at com.my-namespace.request.CreateTopic
1309
+ class CreateTopic < AvroGen::SchemaClass::Record
1310
+
1311
+ ### Attribute Accessors ###
1312
+ # @return [String]
1313
+ attr_accessor :request_id
1314
+
1315
+ # @override
1316
+ def initialize(_from_message: false, request_id: nil)
1317
+ @_from_message = _from_message
1318
+ super
1319
+ self.request_id = request_id
1320
+ end
1321
+
1322
+ # @override
1323
+ def schema
1324
+ 'CreateTopic'
1325
+ end
1326
+
1327
+ # @override
1328
+ def namespace
1329
+ 'com.my-namespace.request'
1330
+ end
1331
+
1332
+ # @override
1333
+ def as_json(_opts={})
1334
+ {
1335
+ 'request_id' => @request_id
1336
+ }
1337
+ end
1338
+ end
1339
+ end; end; end; end
1340
+
1341
+
1342
+ spec/app/lib/schema_classes/schemas/com/my_namespace/request/index.rb:
1343
+ # frozen_string_literal: true
1344
+
1345
+ # This file is autogenerated by AvroGen, Do NOT modify
1346
+ module Schemas; module Com; module MyNamespace; module Request
1347
+ ### Primary Schema Class ###
1348
+ # Autogenerated Schema for Record at com.my-namespace.request.Index
1349
+ class Index < AvroGen::SchemaClass::Record
1350
+
1351
+ ### Attribute Accessors ###
1352
+ # @return [String]
1353
+ attr_accessor :request_id
1354
+
1355
+ # @override
1356
+ def initialize(_from_message: false, request_id: nil)
1357
+ @_from_message = _from_message
1358
+ super
1359
+ self.request_id = request_id
1360
+ end
1361
+
1362
+ # @override
1363
+ def schema
1364
+ 'Index'
1365
+ end
1366
+
1367
+ # @override
1368
+ def namespace
1369
+ 'com.my-namespace.request'
1370
+ end
1371
+
1372
+ # @override
1373
+ def as_json(_opts={})
1374
+ {
1375
+ 'request_id' => @request_id
1376
+ }
1377
+ end
1378
+ end
1379
+ end; end; end; end
1380
+
1381
+
1382
+ spec/app/lib/schema_classes/schemas/com/my_namespace/request/update_request.rb:
1383
+ # frozen_string_literal: true
1384
+
1385
+ # This file is autogenerated by AvroGen, Do NOT modify
1386
+ module Schemas; module Com; module MyNamespace; module Request
1387
+ ### Primary Schema Class ###
1388
+ # Autogenerated Schema for Record at com.my-namespace.request.UpdateRequest
1389
+ class UpdateRequest < AvroGen::SchemaClass::Record
1390
+
1391
+ ### Attribute Accessors ###
1392
+ # @return [String]
1393
+ attr_accessor :update_request_id
1394
+
1395
+ # @override
1396
+ def initialize(_from_message: false, update_request_id: nil)
1397
+ @_from_message = _from_message
1398
+ super
1399
+ self.update_request_id = update_request_id
1400
+ end
1401
+
1402
+ # @override
1403
+ def schema
1404
+ 'UpdateRequest'
1405
+ end
1406
+
1407
+ # @override
1408
+ def namespace
1409
+ 'com.my-namespace.request'
1410
+ end
1411
+
1412
+ # @override
1413
+ def as_json(_opts={})
1414
+ {
1415
+ 'update_request_id' => @update_request_id
1416
+ }
1417
+ end
1418
+ end
1419
+ end; end; end; end
1420
+
1421
+
1422
+ spec/app/lib/schema_classes/schemas/com/my_namespace/response/create_topic.rb:
1423
+ # frozen_string_literal: true
1424
+
1425
+ # This file is autogenerated by AvroGen, Do NOT modify
1426
+ module Schemas; module Com; module MyNamespace; module Response
1427
+ ### Primary Schema Class ###
1428
+ # Autogenerated Schema for Record at com.my-namespace.response.CreateTopic
1429
+ class CreateTopic < AvroGen::SchemaClass::Record
1430
+
1431
+ ### Attribute Accessors ###
1432
+ # @return [String]
1433
+ attr_accessor :response_id
1434
+
1435
+ # @override
1436
+ def initialize(_from_message: false, response_id: nil)
1437
+ @_from_message = _from_message
1438
+ super
1439
+ self.response_id = response_id
1440
+ end
1441
+
1442
+ # @override
1443
+ def schema
1444
+ 'CreateTopic'
1445
+ end
1446
+
1447
+ # @override
1448
+ def namespace
1449
+ 'com.my-namespace.response'
1450
+ end
1451
+
1452
+ # @override
1453
+ def as_json(_opts={})
1454
+ {
1455
+ 'response_id' => @response_id
1456
+ }
1457
+ end
1458
+ end
1459
+ end; end; end; end
1460
+
1461
+
1462
+ spec/app/lib/schema_classes/schemas/com/my_namespace/response/index.rb:
1463
+ # frozen_string_literal: true
1464
+
1465
+ # This file is autogenerated by AvroGen, Do NOT modify
1466
+ module Schemas; module Com; module MyNamespace; module Response
1467
+ ### Primary Schema Class ###
1468
+ # Autogenerated Schema for Record at com.my-namespace.response.Index
1469
+ class Index < AvroGen::SchemaClass::Record
1470
+
1471
+ ### Attribute Accessors ###
1472
+ # @return [String]
1473
+ attr_accessor :response_id
1474
+
1475
+ # @override
1476
+ def initialize(_from_message: false, response_id: nil)
1477
+ @_from_message = _from_message
1478
+ super
1479
+ self.response_id = response_id
1480
+ end
1481
+
1482
+ # @override
1483
+ def schema
1484
+ 'Index'
1485
+ end
1486
+
1487
+ # @override
1488
+ def namespace
1489
+ 'com.my-namespace.response'
1490
+ end
1491
+
1492
+ # @override
1493
+ def as_json(_opts={})
1494
+ {
1495
+ 'response_id' => @response_id
1496
+ }
1497
+ end
1498
+ end
1499
+ end; end; end; end
1500
+
1501
+
1502
+ spec/app/lib/schema_classes/schemas/com/my_namespace/response/update_response.rb:
1503
+ # frozen_string_literal: true
1504
+
1505
+ # This file is autogenerated by AvroGen, Do NOT modify
1506
+ module Schemas; module Com; module MyNamespace; module Response
1507
+ ### Primary Schema Class ###
1508
+ # Autogenerated Schema for Record at com.my-namespace.response.UpdateResponse
1509
+ class UpdateResponse < AvroGen::SchemaClass::Record
1510
+
1511
+ ### Attribute Accessors ###
1512
+ # @return [String]
1513
+ attr_accessor :update_response_id
1514
+
1515
+ # @override
1516
+ def initialize(_from_message: false, update_response_id: nil)
1517
+ @_from_message = _from_message
1518
+ super
1519
+ self.update_response_id = update_response_id
1520
+ end
1521
+
1522
+ # @override
1523
+ def schema
1524
+ 'UpdateResponse'
1525
+ end
1526
+
1527
+ # @override
1528
+ def namespace
1529
+ 'com.my-namespace.response'
1530
+ end
1531
+
1532
+ # @override
1533
+ def as_json(_opts={})
1534
+ {
1535
+ 'update_response_id' => @update_response_id
1536
+ }
1537
+ end
1538
+ end
1539
+ end; end; end; end
1540
+
1541
+
1542
+ spec/app/lib/schema_classes/schemas/com/my_namespace/wibble.rb:
1543
+ # frozen_string_literal: true
1544
+
1545
+ # This file is autogenerated by AvroGen, Do NOT modify
1546
+ module Schemas; module Com; module MyNamespace
1547
+ ### Primary Schema Class ###
1548
+ # Autogenerated Schema for Record at com.my-namespace.Wibble
1549
+ class Wibble < AvroGen::SchemaClass::Record
1550
+
1551
+ ### Attribute Accessors ###
1552
+ # @return [Integer]
1553
+ attr_accessor :id
1554
+ # @return [Integer]
1555
+ attr_accessor :wibble_id
1556
+ # @return [String]
1557
+ attr_accessor :name
1558
+ # @return [String]
1559
+ attr_accessor :floop
1560
+ # @return [Integer]
1561
+ attr_accessor :birthday_int
1562
+ # @return [Integer]
1563
+ attr_accessor :birthday_long
1564
+ # @return [nil, Integer]
1565
+ attr_accessor :birthday_optional
1566
+ # @return [Integer]
1567
+ attr_accessor :updated_at
1568
+ # @return [Integer]
1569
+ attr_accessor :created_at
1570
+
1571
+ # @override
1572
+ def initialize(_from_message: false, id: nil,
1573
+ wibble_id: nil,
1574
+ name: nil,
1575
+ floop: nil,
1576
+ birthday_int: nil,
1577
+ birthday_long: nil,
1578
+ birthday_optional: nil,
1579
+ updated_at: nil,
1580
+ created_at: nil)
1581
+ @_from_message = _from_message
1582
+ super
1583
+ self.id = id
1584
+ self.wibble_id = wibble_id
1585
+ self.name = name
1586
+ self.floop = floop
1587
+ self.birthday_int = birthday_int
1588
+ self.birthday_long = birthday_long
1589
+ self.birthday_optional = birthday_optional
1590
+ self.updated_at = updated_at
1591
+ self.created_at = created_at
1592
+ end
1593
+
1594
+ # @override
1595
+ def schema
1596
+ 'Wibble'
1597
+ end
1598
+
1599
+ # @override
1600
+ def namespace
1601
+ 'com.my-namespace'
1602
+ end
1603
+
1604
+ # @override
1605
+ def as_json(_opts={})
1606
+ {
1607
+ 'id' => @id,
1608
+ 'wibble_id' => @wibble_id,
1609
+ 'name' => @name,
1610
+ 'floop' => @floop,
1611
+ 'birthday_int' => @birthday_int,
1612
+ 'birthday_long' => @birthday_long,
1613
+ 'birthday_optional' => @birthday_optional,
1614
+ 'updated_at' => @updated_at,
1615
+ 'created_at' => @created_at
1616
+ }
1617
+ end
1618
+ end
1619
+ end; end; end
1620
+
1621
+
1622
+ spec/app/lib/schema_classes/schemas/com/my_namespace/widget.rb:
1623
+ # frozen_string_literal: true
1624
+
1625
+ # This file is autogenerated by AvroGen, Do NOT modify
1626
+ module Schemas; module Com; module MyNamespace
1627
+ ### Primary Schema Class ###
1628
+ # Autogenerated Schema for Record at com.my-namespace.Widget
1629
+ class Widget < AvroGen::SchemaClass::Record
1630
+
1631
+ ### Attribute Accessors ###
1632
+ # @return [Integer]
1633
+ attr_accessor :id
1634
+ # @return [Integer]
1635
+ attr_accessor :widget_id
1636
+ # @return [String]
1637
+ attr_accessor :name
1638
+ # @return [Integer]
1639
+ attr_accessor :updated_at
1640
+ # @return [Integer]
1641
+ attr_accessor :created_at
1642
+
1643
+ # @override
1644
+ def initialize(_from_message: false, id: nil,
1645
+ widget_id: nil,
1646
+ name: nil,
1647
+ updated_at: nil,
1648
+ created_at: nil)
1649
+ @_from_message = _from_message
1650
+ super
1651
+ self.id = id
1652
+ self.widget_id = widget_id
1653
+ self.name = name
1654
+ self.updated_at = updated_at
1655
+ self.created_at = created_at
1656
+ end
1657
+
1658
+ # @override
1659
+ def schema
1660
+ 'Widget'
1661
+ end
1662
+
1663
+ # @override
1664
+ def namespace
1665
+ 'com.my-namespace'
1666
+ end
1667
+
1668
+ # @override
1669
+ def as_json(_opts={})
1670
+ {
1671
+ 'id' => @id,
1672
+ 'widget_id' => @widget_id,
1673
+ 'name' => @name,
1674
+ 'updated_at' => @updated_at,
1675
+ 'created_at' => @created_at
1676
+ }
1677
+ end
1678
+ end
1679
+ end; end; end
1680
+
1681
+
1682
+ spec/app/lib/schema_classes/schemas/com/my_namespace/widget_the_second.rb:
1683
+ # frozen_string_literal: true
1684
+
1685
+ # This file is autogenerated by AvroGen, Do NOT modify
1686
+ module Schemas; module Com; module MyNamespace
1687
+ ### Primary Schema Class ###
1688
+ # Autogenerated Schema for Record at com.my-namespace.WidgetTheSecond
1689
+ class WidgetTheSecond < AvroGen::SchemaClass::Record
1690
+
1691
+ ### Attribute Accessors ###
1692
+ # @return [Integer]
1693
+ attr_accessor :id
1694
+ # @return [Integer]
1695
+ attr_accessor :widget_id
1696
+ # @return [String]
1697
+ attr_accessor :model_id
1698
+ # @return [Integer]
1699
+ attr_accessor :updated_at
1700
+ # @return [Integer]
1701
+ attr_accessor :created_at
1702
+
1703
+ # @override
1704
+ def initialize(_from_message: false, id: nil,
1705
+ widget_id: nil,
1706
+ model_id: nil,
1707
+ updated_at: nil,
1708
+ created_at: nil)
1709
+ @_from_message = _from_message
1710
+ super
1711
+ self.id = id
1712
+ self.widget_id = widget_id
1713
+ self.model_id = model_id
1714
+ self.updated_at = updated_at
1715
+ self.created_at = created_at
1716
+ end
1717
+
1718
+ # @override
1719
+ def schema
1720
+ 'WidgetTheSecond'
1721
+ end
1722
+
1723
+ # @override
1724
+ def namespace
1725
+ 'com.my-namespace'
1726
+ end
1727
+
1728
+ # @override
1729
+ def as_json(_opts={})
1730
+ {
1731
+ 'id' => @id,
1732
+ 'widget_id' => @widget_id,
1733
+ 'model_id' => @model_id,
1734
+ 'updated_at' => @updated_at,
1735
+ 'created_at' => @created_at
1736
+ }
1737
+ end
1738
+ end
1739
+ end; end; end
1740
+
1741
+
1742
+ spec/app/lib/schema_classes/schemas/com/my_namespace/widget_the_third.rb:
1743
+ # frozen_string_literal: true
1744
+
1745
+ # This file is autogenerated by AvroGen, Do NOT modify
1746
+ module Schemas; module Com; module MyNamespace
1747
+ ### Primary Schema Class ###
1748
+ # Autogenerated Schema for Record at com.my-namespace.WidgetTheThird
1749
+ class WidgetTheThird < AvroGen::SchemaClass::Record
1750
+
1751
+ ### Attribute Accessors ###
1752
+ # @return [String]
1753
+ attr_accessor :id
1754
+ # @return [Integer]
1755
+ attr_accessor :widget_id
1756
+ # @return [String]
1757
+ attr_accessor :model_id
1758
+ # @return [Integer]
1759
+ attr_accessor :updated_at
1760
+ # @return [Integer]
1761
+ attr_accessor :created_at
1762
+
1763
+ # @override
1764
+ def initialize(_from_message: false, id: nil,
1765
+ widget_id: nil,
1766
+ model_id: nil,
1767
+ updated_at: nil,
1768
+ created_at: nil)
1769
+ @_from_message = _from_message
1770
+ super
1771
+ self.id = id
1772
+ self.widget_id = widget_id
1773
+ self.model_id = model_id
1774
+ self.updated_at = updated_at
1775
+ self.created_at = created_at
1776
+ end
1777
+
1778
+ # @override
1779
+ def schema
1780
+ 'WidgetTheThird'
1781
+ end
1782
+
1783
+ # @override
1784
+ def namespace
1785
+ 'com.my-namespace'
1786
+ end
1787
+
1788
+ # @override
1789
+ def as_json(_opts={})
1790
+ {
1791
+ 'id' => @id,
1792
+ 'widget_id' => @widget_id,
1793
+ 'model_id' => @model_id,
1794
+ 'updated_at' => @updated_at,
1795
+ 'created_at' => @created_at
1796
+ }
1797
+ end
1798
+ end
1799
+ end; end; end
1800
+