deimos-ruby 2.0.0.pre.beta7 → 2.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.github/workflows/ci.yml +1 -1
- data/CHANGELOG.md +4 -2
- data/Gemfile +6 -0
- data/README.md +4 -2
- data/lib/deimos/ext/producer_middleware.rb +1 -0
- data/lib/deimos/kafka_message.rb +2 -1
- data/lib/deimos/schema_backends/avro_schema_coercer.rb +39 -1
- data/lib/deimos/version.rb +1 -1
- data/spec/active_record_producer_spec.rb +111 -5
- data/spec/generators/schema_class_generator_spec.rb +10 -1
- data/spec/schemas/com/my-namespace/MySchemaWithUnionType.avsc +91 -0
- data/spec/schemas/my_namespace/my_schema_with_union_type.rb +185 -0
- data/spec/snapshots/consumers-no-nest.snap +218 -0
- data/spec/snapshots/consumers.snap +188 -0
- data/spec/snapshots/consumers_and_producers-no-nest.snap +218 -0
- data/spec/snapshots/consumers_and_producers.snap +188 -0
- data/spec/snapshots/consumers_circular-no-nest.snap +218 -0
- data/spec/snapshots/consumers_circular.snap +188 -0
- data/spec/snapshots/consumers_complex_types-no-nest.snap +218 -0
- data/spec/snapshots/consumers_complex_types.snap +188 -0
- data/spec/snapshots/consumers_nested-no-nest.snap +218 -0
- data/spec/snapshots/consumers_nested.snap +188 -0
- data/spec/snapshots/namespace_folders.snap +188 -0
- data/spec/snapshots/namespace_map.snap +188 -0
- data/spec/snapshots/producers_with_key-no-nest.snap +218 -0
- data/spec/snapshots/producers_with_key.snap +188 -0
- data/spec/spec_helper.rb +25 -0
- data/spec/utils/outbox_producer_spec.rb +12 -0
- metadata +8 -4
@@ -1086,6 +1086,194 @@ module Schemas
|
|
1086
1086
|
end
|
1087
1087
|
|
1088
1088
|
|
1089
|
+
spec/app/lib/schema_classes/my_schema_with_union_type.rb:
|
1090
|
+
# frozen_string_literal: true
|
1091
|
+
|
1092
|
+
# This file is autogenerated by Deimos, Do NOT modify
|
1093
|
+
module Schemas
|
1094
|
+
### Primary Schema Class ###
|
1095
|
+
# Autogenerated Schema for Record at com.my-namespace.MySchemaWithUnionType
|
1096
|
+
class MySchemaWithUnionType < Deimos::SchemaClass::Record
|
1097
|
+
|
1098
|
+
### Secondary Schema Classes ###
|
1099
|
+
# Autogenerated Schema for Record at com.flipp.content.Record1
|
1100
|
+
class Record1 < Deimos::SchemaClass::Record
|
1101
|
+
|
1102
|
+
### Attribute Accessors ###
|
1103
|
+
# @return [Hash<String, Integer>]
|
1104
|
+
attr_accessor :record1_map
|
1105
|
+
# @return [Integer]
|
1106
|
+
attr_accessor :record1_id
|
1107
|
+
|
1108
|
+
# @override
|
1109
|
+
def initialize(record1_map: {},
|
1110
|
+
record1_id: 0)
|
1111
|
+
super
|
1112
|
+
self.record1_map = record1_map
|
1113
|
+
self.record1_id = record1_id
|
1114
|
+
end
|
1115
|
+
|
1116
|
+
# @override
|
1117
|
+
def schema
|
1118
|
+
'Record1'
|
1119
|
+
end
|
1120
|
+
|
1121
|
+
# @override
|
1122
|
+
def namespace
|
1123
|
+
'com.flipp.content'
|
1124
|
+
end
|
1125
|
+
|
1126
|
+
# @override
|
1127
|
+
def as_json(_opts={})
|
1128
|
+
{
|
1129
|
+
'record1_map' => @record1_map,
|
1130
|
+
'record1_id' => @record1_id
|
1131
|
+
}
|
1132
|
+
end
|
1133
|
+
end
|
1134
|
+
|
1135
|
+
# Autogenerated Schema for Record at com.flipp.content.Record2
|
1136
|
+
class Record2 < Deimos::SchemaClass::Record
|
1137
|
+
|
1138
|
+
### Attribute Accessors ###
|
1139
|
+
# @return [String]
|
1140
|
+
attr_accessor :record2_id
|
1141
|
+
|
1142
|
+
# @override
|
1143
|
+
def initialize(record2_id: "")
|
1144
|
+
super
|
1145
|
+
self.record2_id = record2_id
|
1146
|
+
end
|
1147
|
+
|
1148
|
+
# @override
|
1149
|
+
def schema
|
1150
|
+
'Record2'
|
1151
|
+
end
|
1152
|
+
|
1153
|
+
# @override
|
1154
|
+
def namespace
|
1155
|
+
'com.flipp.content'
|
1156
|
+
end
|
1157
|
+
|
1158
|
+
# @override
|
1159
|
+
def as_json(_opts={})
|
1160
|
+
{
|
1161
|
+
'record2_id' => @record2_id
|
1162
|
+
}
|
1163
|
+
end
|
1164
|
+
end
|
1165
|
+
|
1166
|
+
# Autogenerated Schema for Record at com.flipp.content.Record3
|
1167
|
+
class Record3 < Deimos::SchemaClass::Record
|
1168
|
+
|
1169
|
+
### Attribute Accessors ###
|
1170
|
+
# @return [Float]
|
1171
|
+
attr_accessor :record3_id
|
1172
|
+
|
1173
|
+
# @override
|
1174
|
+
def initialize(record3_id: 0.0)
|
1175
|
+
super
|
1176
|
+
self.record3_id = record3_id
|
1177
|
+
end
|
1178
|
+
|
1179
|
+
# @override
|
1180
|
+
def schema
|
1181
|
+
'Record3'
|
1182
|
+
end
|
1183
|
+
|
1184
|
+
# @override
|
1185
|
+
def namespace
|
1186
|
+
'com.flipp.content'
|
1187
|
+
end
|
1188
|
+
|
1189
|
+
# @override
|
1190
|
+
def as_json(_opts={})
|
1191
|
+
{
|
1192
|
+
'record3_id' => @record3_id
|
1193
|
+
}
|
1194
|
+
end
|
1195
|
+
end
|
1196
|
+
|
1197
|
+
# Autogenerated Schema for Record at com.flipp.content.Record4
|
1198
|
+
class Record4 < Deimos::SchemaClass::Record
|
1199
|
+
|
1200
|
+
### Attribute Accessors ###
|
1201
|
+
# @return [Integer]
|
1202
|
+
attr_accessor :record4_id
|
1203
|
+
|
1204
|
+
# @override
|
1205
|
+
def initialize(record4_id: 0)
|
1206
|
+
super
|
1207
|
+
self.record4_id = record4_id
|
1208
|
+
end
|
1209
|
+
|
1210
|
+
# @override
|
1211
|
+
def schema
|
1212
|
+
'Record4'
|
1213
|
+
end
|
1214
|
+
|
1215
|
+
# @override
|
1216
|
+
def namespace
|
1217
|
+
'com.flipp.content'
|
1218
|
+
end
|
1219
|
+
|
1220
|
+
# @override
|
1221
|
+
def as_json(_opts={})
|
1222
|
+
{
|
1223
|
+
'record4_id' => @record4_id
|
1224
|
+
}
|
1225
|
+
end
|
1226
|
+
end
|
1227
|
+
|
1228
|
+
|
1229
|
+
### Attribute Readers ###
|
1230
|
+
# @return [nil, Record1, Record2, Record3, Record4, Integer, Array<String>]
|
1231
|
+
attr_reader :test_union_type
|
1232
|
+
|
1233
|
+
### Attribute Accessors ###
|
1234
|
+
# @return [String]
|
1235
|
+
attr_accessor :test_id
|
1236
|
+
# @return [nil, Integer]
|
1237
|
+
attr_accessor :test_long
|
1238
|
+
|
1239
|
+
### Attribute Writers ###
|
1240
|
+
# @return [nil, Record1, Record2, Record3, Record4, Integer, Array<String>]
|
1241
|
+
def test_union_type=(value)
|
1242
|
+
@test_union_type = Record1.initialize_from_value(value)
|
1243
|
+
end
|
1244
|
+
|
1245
|
+
# @override
|
1246
|
+
def initialize(test_id: "",
|
1247
|
+
test_long: nil,
|
1248
|
+
test_union_type: nil)
|
1249
|
+
super
|
1250
|
+
self.test_id = test_id
|
1251
|
+
self.test_long = test_long
|
1252
|
+
self.test_union_type = test_union_type
|
1253
|
+
end
|
1254
|
+
|
1255
|
+
# @override
|
1256
|
+
def schema
|
1257
|
+
'MySchemaWithUnionType'
|
1258
|
+
end
|
1259
|
+
|
1260
|
+
# @override
|
1261
|
+
def namespace
|
1262
|
+
'com.my-namespace'
|
1263
|
+
end
|
1264
|
+
|
1265
|
+
# @override
|
1266
|
+
def as_json(_opts={})
|
1267
|
+
{
|
1268
|
+
'test_id' => @test_id,
|
1269
|
+
'test_long' => @test_long,
|
1270
|
+
'test_union_type' => @test_union_type&.as_json
|
1271
|
+
}
|
1272
|
+
end
|
1273
|
+
end
|
1274
|
+
end
|
1275
|
+
|
1276
|
+
|
1089
1277
|
spec/app/lib/schema_classes/my_schema_with_unique_id.rb:
|
1090
1278
|
# frozen_string_literal: true
|
1091
1279
|
|
@@ -999,6 +999,63 @@ module Schemas
|
|
999
999
|
end
|
1000
1000
|
|
1001
1001
|
|
1002
|
+
spec/app/lib/schema_classes/my_schema_with_union_type.rb:
|
1003
|
+
# frozen_string_literal: true
|
1004
|
+
|
1005
|
+
# This file is autogenerated by Deimos, Do NOT modify
|
1006
|
+
module Schemas
|
1007
|
+
### Primary Schema Class ###
|
1008
|
+
# Autogenerated Schema for Record at com.my-namespace.MySchemaWithUnionType
|
1009
|
+
class MySchemaWithUnionType < Deimos::SchemaClass::Record
|
1010
|
+
|
1011
|
+
### Attribute Readers ###
|
1012
|
+
# @return [nil, Record1, Record2, Record3, Record4, Integer, Array<String>]
|
1013
|
+
attr_reader :test_union_type
|
1014
|
+
|
1015
|
+
### Attribute Accessors ###
|
1016
|
+
# @return [String]
|
1017
|
+
attr_accessor :test_id
|
1018
|
+
# @return [nil, Integer]
|
1019
|
+
attr_accessor :test_long
|
1020
|
+
|
1021
|
+
### Attribute Writers ###
|
1022
|
+
# @return [nil, Record1, Record2, Record3, Record4, Integer, Array<String>]
|
1023
|
+
def test_union_type=(value)
|
1024
|
+
@test_union_type = Record1.initialize_from_value(value)
|
1025
|
+
end
|
1026
|
+
|
1027
|
+
# @override
|
1028
|
+
def initialize(test_id: "",
|
1029
|
+
test_long: nil,
|
1030
|
+
test_union_type: nil)
|
1031
|
+
super
|
1032
|
+
self.test_id = test_id
|
1033
|
+
self.test_long = test_long
|
1034
|
+
self.test_union_type = test_union_type
|
1035
|
+
end
|
1036
|
+
|
1037
|
+
# @override
|
1038
|
+
def schema
|
1039
|
+
'MySchemaWithUnionType'
|
1040
|
+
end
|
1041
|
+
|
1042
|
+
# @override
|
1043
|
+
def namespace
|
1044
|
+
'com.my-namespace'
|
1045
|
+
end
|
1046
|
+
|
1047
|
+
# @override
|
1048
|
+
def as_json(_opts={})
|
1049
|
+
{
|
1050
|
+
'test_id' => @test_id,
|
1051
|
+
'test_long' => @test_long,
|
1052
|
+
'test_union_type' => @test_union_type&.as_json
|
1053
|
+
}
|
1054
|
+
end
|
1055
|
+
end
|
1056
|
+
end
|
1057
|
+
|
1058
|
+
|
1002
1059
|
spec/app/lib/schema_classes/my_schema_with_unique_id.rb:
|
1003
1060
|
# frozen_string_literal: true
|
1004
1061
|
|
@@ -1097,6 +1154,167 @@ module Schemas
|
|
1097
1154
|
end
|
1098
1155
|
|
1099
1156
|
|
1157
|
+
spec/app/lib/schema_classes/record1.rb:
|
1158
|
+
# frozen_string_literal: true
|
1159
|
+
|
1160
|
+
# This file is autogenerated by Deimos, Do NOT modify
|
1161
|
+
module Schemas
|
1162
|
+
### Primary Schema Class ###
|
1163
|
+
# Autogenerated Schema for Record at com.flipp.content.Record1
|
1164
|
+
class Record1 < Deimos::SchemaClass::Record
|
1165
|
+
|
1166
|
+
### Attribute Accessors ###
|
1167
|
+
# @return [Hash<String, Integer>]
|
1168
|
+
attr_accessor :record1_map
|
1169
|
+
# @return [Integer]
|
1170
|
+
attr_accessor :record1_id
|
1171
|
+
|
1172
|
+
# @override
|
1173
|
+
def initialize(record1_map: {},
|
1174
|
+
record1_id: 0)
|
1175
|
+
super
|
1176
|
+
self.record1_map = record1_map
|
1177
|
+
self.record1_id = record1_id
|
1178
|
+
end
|
1179
|
+
|
1180
|
+
# @override
|
1181
|
+
def schema
|
1182
|
+
'Record1'
|
1183
|
+
end
|
1184
|
+
|
1185
|
+
# @override
|
1186
|
+
def namespace
|
1187
|
+
'com.flipp.content'
|
1188
|
+
end
|
1189
|
+
|
1190
|
+
# @override
|
1191
|
+
def as_json(_opts={})
|
1192
|
+
{
|
1193
|
+
'record1_map' => @record1_map,
|
1194
|
+
'record1_id' => @record1_id
|
1195
|
+
}
|
1196
|
+
end
|
1197
|
+
end
|
1198
|
+
end
|
1199
|
+
|
1200
|
+
|
1201
|
+
spec/app/lib/schema_classes/record2.rb:
|
1202
|
+
# frozen_string_literal: true
|
1203
|
+
|
1204
|
+
# This file is autogenerated by Deimos, Do NOT modify
|
1205
|
+
module Schemas
|
1206
|
+
### Primary Schema Class ###
|
1207
|
+
# Autogenerated Schema for Record at com.flipp.content.Record2
|
1208
|
+
class Record2 < Deimos::SchemaClass::Record
|
1209
|
+
|
1210
|
+
### Attribute Accessors ###
|
1211
|
+
# @return [String]
|
1212
|
+
attr_accessor :record2_id
|
1213
|
+
|
1214
|
+
# @override
|
1215
|
+
def initialize(record2_id: "")
|
1216
|
+
super
|
1217
|
+
self.record2_id = record2_id
|
1218
|
+
end
|
1219
|
+
|
1220
|
+
# @override
|
1221
|
+
def schema
|
1222
|
+
'Record2'
|
1223
|
+
end
|
1224
|
+
|
1225
|
+
# @override
|
1226
|
+
def namespace
|
1227
|
+
'com.flipp.content'
|
1228
|
+
end
|
1229
|
+
|
1230
|
+
# @override
|
1231
|
+
def as_json(_opts={})
|
1232
|
+
{
|
1233
|
+
'record2_id' => @record2_id
|
1234
|
+
}
|
1235
|
+
end
|
1236
|
+
end
|
1237
|
+
end
|
1238
|
+
|
1239
|
+
|
1240
|
+
spec/app/lib/schema_classes/record3.rb:
|
1241
|
+
# frozen_string_literal: true
|
1242
|
+
|
1243
|
+
# This file is autogenerated by Deimos, Do NOT modify
|
1244
|
+
module Schemas
|
1245
|
+
### Primary Schema Class ###
|
1246
|
+
# Autogenerated Schema for Record at com.flipp.content.Record3
|
1247
|
+
class Record3 < Deimos::SchemaClass::Record
|
1248
|
+
|
1249
|
+
### Attribute Accessors ###
|
1250
|
+
# @return [Float]
|
1251
|
+
attr_accessor :record3_id
|
1252
|
+
|
1253
|
+
# @override
|
1254
|
+
def initialize(record3_id: 0.0)
|
1255
|
+
super
|
1256
|
+
self.record3_id = record3_id
|
1257
|
+
end
|
1258
|
+
|
1259
|
+
# @override
|
1260
|
+
def schema
|
1261
|
+
'Record3'
|
1262
|
+
end
|
1263
|
+
|
1264
|
+
# @override
|
1265
|
+
def namespace
|
1266
|
+
'com.flipp.content'
|
1267
|
+
end
|
1268
|
+
|
1269
|
+
# @override
|
1270
|
+
def as_json(_opts={})
|
1271
|
+
{
|
1272
|
+
'record3_id' => @record3_id
|
1273
|
+
}
|
1274
|
+
end
|
1275
|
+
end
|
1276
|
+
end
|
1277
|
+
|
1278
|
+
|
1279
|
+
spec/app/lib/schema_classes/record4.rb:
|
1280
|
+
# frozen_string_literal: true
|
1281
|
+
|
1282
|
+
# This file is autogenerated by Deimos, Do NOT modify
|
1283
|
+
module Schemas
|
1284
|
+
### Primary Schema Class ###
|
1285
|
+
# Autogenerated Schema for Record at com.flipp.content.Record4
|
1286
|
+
class Record4 < Deimos::SchemaClass::Record
|
1287
|
+
|
1288
|
+
### Attribute Accessors ###
|
1289
|
+
# @return [Integer]
|
1290
|
+
attr_accessor :record4_id
|
1291
|
+
|
1292
|
+
# @override
|
1293
|
+
def initialize(record4_id: 0)
|
1294
|
+
super
|
1295
|
+
self.record4_id = record4_id
|
1296
|
+
end
|
1297
|
+
|
1298
|
+
# @override
|
1299
|
+
def schema
|
1300
|
+
'Record4'
|
1301
|
+
end
|
1302
|
+
|
1303
|
+
# @override
|
1304
|
+
def namespace
|
1305
|
+
'com.flipp.content'
|
1306
|
+
end
|
1307
|
+
|
1308
|
+
# @override
|
1309
|
+
def as_json(_opts={})
|
1310
|
+
{
|
1311
|
+
'record4_id' => @record4_id
|
1312
|
+
}
|
1313
|
+
end
|
1314
|
+
end
|
1315
|
+
end
|
1316
|
+
|
1317
|
+
|
1100
1318
|
spec/app/lib/schema_classes/update_request.rb:
|
1101
1319
|
# frozen_string_literal: true
|
1102
1320
|
|
@@ -1059,6 +1059,194 @@ module Schemas
|
|
1059
1059
|
end
|
1060
1060
|
|
1061
1061
|
|
1062
|
+
spec/app/lib/schema_classes/my_schema_with_union_type.rb:
|
1063
|
+
# frozen_string_literal: true
|
1064
|
+
|
1065
|
+
# This file is autogenerated by Deimos, Do NOT modify
|
1066
|
+
module Schemas
|
1067
|
+
### Primary Schema Class ###
|
1068
|
+
# Autogenerated Schema for Record at com.my-namespace.MySchemaWithUnionType
|
1069
|
+
class MySchemaWithUnionType < Deimos::SchemaClass::Record
|
1070
|
+
|
1071
|
+
### Secondary Schema Classes ###
|
1072
|
+
# Autogenerated Schema for Record at com.flipp.content.Record1
|
1073
|
+
class Record1 < Deimos::SchemaClass::Record
|
1074
|
+
|
1075
|
+
### Attribute Accessors ###
|
1076
|
+
# @return [Hash<String, Integer>]
|
1077
|
+
attr_accessor :record1_map
|
1078
|
+
# @return [Integer]
|
1079
|
+
attr_accessor :record1_id
|
1080
|
+
|
1081
|
+
# @override
|
1082
|
+
def initialize(record1_map: {},
|
1083
|
+
record1_id: 0)
|
1084
|
+
super
|
1085
|
+
self.record1_map = record1_map
|
1086
|
+
self.record1_id = record1_id
|
1087
|
+
end
|
1088
|
+
|
1089
|
+
# @override
|
1090
|
+
def schema
|
1091
|
+
'Record1'
|
1092
|
+
end
|
1093
|
+
|
1094
|
+
# @override
|
1095
|
+
def namespace
|
1096
|
+
'com.flipp.content'
|
1097
|
+
end
|
1098
|
+
|
1099
|
+
# @override
|
1100
|
+
def as_json(_opts={})
|
1101
|
+
{
|
1102
|
+
'record1_map' => @record1_map,
|
1103
|
+
'record1_id' => @record1_id
|
1104
|
+
}
|
1105
|
+
end
|
1106
|
+
end
|
1107
|
+
|
1108
|
+
# Autogenerated Schema for Record at com.flipp.content.Record2
|
1109
|
+
class Record2 < Deimos::SchemaClass::Record
|
1110
|
+
|
1111
|
+
### Attribute Accessors ###
|
1112
|
+
# @return [String]
|
1113
|
+
attr_accessor :record2_id
|
1114
|
+
|
1115
|
+
# @override
|
1116
|
+
def initialize(record2_id: "")
|
1117
|
+
super
|
1118
|
+
self.record2_id = record2_id
|
1119
|
+
end
|
1120
|
+
|
1121
|
+
# @override
|
1122
|
+
def schema
|
1123
|
+
'Record2'
|
1124
|
+
end
|
1125
|
+
|
1126
|
+
# @override
|
1127
|
+
def namespace
|
1128
|
+
'com.flipp.content'
|
1129
|
+
end
|
1130
|
+
|
1131
|
+
# @override
|
1132
|
+
def as_json(_opts={})
|
1133
|
+
{
|
1134
|
+
'record2_id' => @record2_id
|
1135
|
+
}
|
1136
|
+
end
|
1137
|
+
end
|
1138
|
+
|
1139
|
+
# Autogenerated Schema for Record at com.flipp.content.Record3
|
1140
|
+
class Record3 < Deimos::SchemaClass::Record
|
1141
|
+
|
1142
|
+
### Attribute Accessors ###
|
1143
|
+
# @return [Float]
|
1144
|
+
attr_accessor :record3_id
|
1145
|
+
|
1146
|
+
# @override
|
1147
|
+
def initialize(record3_id: 0.0)
|
1148
|
+
super
|
1149
|
+
self.record3_id = record3_id
|
1150
|
+
end
|
1151
|
+
|
1152
|
+
# @override
|
1153
|
+
def schema
|
1154
|
+
'Record3'
|
1155
|
+
end
|
1156
|
+
|
1157
|
+
# @override
|
1158
|
+
def namespace
|
1159
|
+
'com.flipp.content'
|
1160
|
+
end
|
1161
|
+
|
1162
|
+
# @override
|
1163
|
+
def as_json(_opts={})
|
1164
|
+
{
|
1165
|
+
'record3_id' => @record3_id
|
1166
|
+
}
|
1167
|
+
end
|
1168
|
+
end
|
1169
|
+
|
1170
|
+
# Autogenerated Schema for Record at com.flipp.content.Record4
|
1171
|
+
class Record4 < Deimos::SchemaClass::Record
|
1172
|
+
|
1173
|
+
### Attribute Accessors ###
|
1174
|
+
# @return [Integer]
|
1175
|
+
attr_accessor :record4_id
|
1176
|
+
|
1177
|
+
# @override
|
1178
|
+
def initialize(record4_id: 0)
|
1179
|
+
super
|
1180
|
+
self.record4_id = record4_id
|
1181
|
+
end
|
1182
|
+
|
1183
|
+
# @override
|
1184
|
+
def schema
|
1185
|
+
'Record4'
|
1186
|
+
end
|
1187
|
+
|
1188
|
+
# @override
|
1189
|
+
def namespace
|
1190
|
+
'com.flipp.content'
|
1191
|
+
end
|
1192
|
+
|
1193
|
+
# @override
|
1194
|
+
def as_json(_opts={})
|
1195
|
+
{
|
1196
|
+
'record4_id' => @record4_id
|
1197
|
+
}
|
1198
|
+
end
|
1199
|
+
end
|
1200
|
+
|
1201
|
+
|
1202
|
+
### Attribute Readers ###
|
1203
|
+
# @return [nil, Record1, Record2, Record3, Record4, Integer, Array<String>]
|
1204
|
+
attr_reader :test_union_type
|
1205
|
+
|
1206
|
+
### Attribute Accessors ###
|
1207
|
+
# @return [String]
|
1208
|
+
attr_accessor :test_id
|
1209
|
+
# @return [nil, Integer]
|
1210
|
+
attr_accessor :test_long
|
1211
|
+
|
1212
|
+
### Attribute Writers ###
|
1213
|
+
# @return [nil, Record1, Record2, Record3, Record4, Integer, Array<String>]
|
1214
|
+
def test_union_type=(value)
|
1215
|
+
@test_union_type = Record1.initialize_from_value(value)
|
1216
|
+
end
|
1217
|
+
|
1218
|
+
# @override
|
1219
|
+
def initialize(test_id: "",
|
1220
|
+
test_long: nil,
|
1221
|
+
test_union_type: nil)
|
1222
|
+
super
|
1223
|
+
self.test_id = test_id
|
1224
|
+
self.test_long = test_long
|
1225
|
+
self.test_union_type = test_union_type
|
1226
|
+
end
|
1227
|
+
|
1228
|
+
# @override
|
1229
|
+
def schema
|
1230
|
+
'MySchemaWithUnionType'
|
1231
|
+
end
|
1232
|
+
|
1233
|
+
# @override
|
1234
|
+
def namespace
|
1235
|
+
'com.my-namespace'
|
1236
|
+
end
|
1237
|
+
|
1238
|
+
# @override
|
1239
|
+
def as_json(_opts={})
|
1240
|
+
{
|
1241
|
+
'test_id' => @test_id,
|
1242
|
+
'test_long' => @test_long,
|
1243
|
+
'test_union_type' => @test_union_type&.as_json
|
1244
|
+
}
|
1245
|
+
end
|
1246
|
+
end
|
1247
|
+
end
|
1248
|
+
|
1249
|
+
|
1062
1250
|
spec/app/lib/schema_classes/my_schema_with_unique_id.rb:
|
1063
1251
|
# frozen_string_literal: true
|
1064
1252
|
|