deimos-ruby 2.0.0 → 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.
@@ -1012,6 +1012,63 @@ module Schemas
1012
1012
  end
1013
1013
 
1014
1014
 
1015
+ spec/app/lib/schema_classes/my_schema_with_union_type.rb:
1016
+ # frozen_string_literal: true
1017
+
1018
+ # This file is autogenerated by Deimos, Do NOT modify
1019
+ module Schemas
1020
+ ### Primary Schema Class ###
1021
+ # Autogenerated Schema for Record at com.my-namespace.MySchemaWithUnionType
1022
+ class MySchemaWithUnionType < Deimos::SchemaClass::Record
1023
+
1024
+ ### Attribute Readers ###
1025
+ # @return [nil, Record1, Record2, Record3, Record4, Integer, Array<String>]
1026
+ attr_reader :test_union_type
1027
+
1028
+ ### Attribute Accessors ###
1029
+ # @return [String]
1030
+ attr_accessor :test_id
1031
+ # @return [nil, Integer]
1032
+ attr_accessor :test_long
1033
+
1034
+ ### Attribute Writers ###
1035
+ # @return [nil, Record1, Record2, Record3, Record4, Integer, Array<String>]
1036
+ def test_union_type=(value)
1037
+ @test_union_type = Record1.initialize_from_value(value)
1038
+ end
1039
+
1040
+ # @override
1041
+ def initialize(test_id: "",
1042
+ test_long: nil,
1043
+ test_union_type: nil)
1044
+ super
1045
+ self.test_id = test_id
1046
+ self.test_long = test_long
1047
+ self.test_union_type = test_union_type
1048
+ end
1049
+
1050
+ # @override
1051
+ def schema
1052
+ 'MySchemaWithUnionType'
1053
+ end
1054
+
1055
+ # @override
1056
+ def namespace
1057
+ 'com.my-namespace'
1058
+ end
1059
+
1060
+ # @override
1061
+ def as_json(_opts={})
1062
+ {
1063
+ 'test_id' => @test_id,
1064
+ 'test_long' => @test_long,
1065
+ 'test_union_type' => @test_union_type&.as_json
1066
+ }
1067
+ end
1068
+ end
1069
+ end
1070
+
1071
+
1015
1072
  spec/app/lib/schema_classes/my_schema_with_unique_id.rb:
1016
1073
  # frozen_string_literal: true
1017
1074
 
@@ -1110,6 +1167,167 @@ module Schemas
1110
1167
  end
1111
1168
 
1112
1169
 
1170
+ spec/app/lib/schema_classes/record1.rb:
1171
+ # frozen_string_literal: true
1172
+
1173
+ # This file is autogenerated by Deimos, Do NOT modify
1174
+ module Schemas
1175
+ ### Primary Schema Class ###
1176
+ # Autogenerated Schema for Record at com.flipp.content.Record1
1177
+ class Record1 < Deimos::SchemaClass::Record
1178
+
1179
+ ### Attribute Accessors ###
1180
+ # @return [Hash<String, Integer>]
1181
+ attr_accessor :record1_map
1182
+ # @return [Integer]
1183
+ attr_accessor :record1_id
1184
+
1185
+ # @override
1186
+ def initialize(record1_map: {},
1187
+ record1_id: 0)
1188
+ super
1189
+ self.record1_map = record1_map
1190
+ self.record1_id = record1_id
1191
+ end
1192
+
1193
+ # @override
1194
+ def schema
1195
+ 'Record1'
1196
+ end
1197
+
1198
+ # @override
1199
+ def namespace
1200
+ 'com.flipp.content'
1201
+ end
1202
+
1203
+ # @override
1204
+ def as_json(_opts={})
1205
+ {
1206
+ 'record1_map' => @record1_map,
1207
+ 'record1_id' => @record1_id
1208
+ }
1209
+ end
1210
+ end
1211
+ end
1212
+
1213
+
1214
+ spec/app/lib/schema_classes/record2.rb:
1215
+ # frozen_string_literal: true
1216
+
1217
+ # This file is autogenerated by Deimos, Do NOT modify
1218
+ module Schemas
1219
+ ### Primary Schema Class ###
1220
+ # Autogenerated Schema for Record at com.flipp.content.Record2
1221
+ class Record2 < Deimos::SchemaClass::Record
1222
+
1223
+ ### Attribute Accessors ###
1224
+ # @return [String]
1225
+ attr_accessor :record2_id
1226
+
1227
+ # @override
1228
+ def initialize(record2_id: "")
1229
+ super
1230
+ self.record2_id = record2_id
1231
+ end
1232
+
1233
+ # @override
1234
+ def schema
1235
+ 'Record2'
1236
+ end
1237
+
1238
+ # @override
1239
+ def namespace
1240
+ 'com.flipp.content'
1241
+ end
1242
+
1243
+ # @override
1244
+ def as_json(_opts={})
1245
+ {
1246
+ 'record2_id' => @record2_id
1247
+ }
1248
+ end
1249
+ end
1250
+ end
1251
+
1252
+
1253
+ spec/app/lib/schema_classes/record3.rb:
1254
+ # frozen_string_literal: true
1255
+
1256
+ # This file is autogenerated by Deimos, Do NOT modify
1257
+ module Schemas
1258
+ ### Primary Schema Class ###
1259
+ # Autogenerated Schema for Record at com.flipp.content.Record3
1260
+ class Record3 < Deimos::SchemaClass::Record
1261
+
1262
+ ### Attribute Accessors ###
1263
+ # @return [Float]
1264
+ attr_accessor :record3_id
1265
+
1266
+ # @override
1267
+ def initialize(record3_id: 0.0)
1268
+ super
1269
+ self.record3_id = record3_id
1270
+ end
1271
+
1272
+ # @override
1273
+ def schema
1274
+ 'Record3'
1275
+ end
1276
+
1277
+ # @override
1278
+ def namespace
1279
+ 'com.flipp.content'
1280
+ end
1281
+
1282
+ # @override
1283
+ def as_json(_opts={})
1284
+ {
1285
+ 'record3_id' => @record3_id
1286
+ }
1287
+ end
1288
+ end
1289
+ end
1290
+
1291
+
1292
+ spec/app/lib/schema_classes/record4.rb:
1293
+ # frozen_string_literal: true
1294
+
1295
+ # This file is autogenerated by Deimos, Do NOT modify
1296
+ module Schemas
1297
+ ### Primary Schema Class ###
1298
+ # Autogenerated Schema for Record at com.flipp.content.Record4
1299
+ class Record4 < Deimos::SchemaClass::Record
1300
+
1301
+ ### Attribute Accessors ###
1302
+ # @return [Integer]
1303
+ attr_accessor :record4_id
1304
+
1305
+ # @override
1306
+ def initialize(record4_id: 0)
1307
+ super
1308
+ self.record4_id = record4_id
1309
+ end
1310
+
1311
+ # @override
1312
+ def schema
1313
+ 'Record4'
1314
+ end
1315
+
1316
+ # @override
1317
+ def namespace
1318
+ 'com.flipp.content'
1319
+ end
1320
+
1321
+ # @override
1322
+ def as_json(_opts={})
1323
+ {
1324
+ 'record4_id' => @record4_id
1325
+ }
1326
+ end
1327
+ end
1328
+ end
1329
+
1330
+
1113
1331
  spec/app/lib/schema_classes/update_request.rb:
1114
1332
  # frozen_string_literal: true
1115
1333
 
@@ -1072,6 +1072,194 @@ module Schemas
1072
1072
  end
1073
1073
 
1074
1074
 
1075
+ spec/app/lib/schema_classes/my_schema_with_union_type.rb:
1076
+ # frozen_string_literal: true
1077
+
1078
+ # This file is autogenerated by Deimos, Do NOT modify
1079
+ module Schemas
1080
+ ### Primary Schema Class ###
1081
+ # Autogenerated Schema for Record at com.my-namespace.MySchemaWithUnionType
1082
+ class MySchemaWithUnionType < Deimos::SchemaClass::Record
1083
+
1084
+ ### Secondary Schema Classes ###
1085
+ # Autogenerated Schema for Record at com.flipp.content.Record1
1086
+ class Record1 < Deimos::SchemaClass::Record
1087
+
1088
+ ### Attribute Accessors ###
1089
+ # @return [Hash<String, Integer>]
1090
+ attr_accessor :record1_map
1091
+ # @return [Integer]
1092
+ attr_accessor :record1_id
1093
+
1094
+ # @override
1095
+ def initialize(record1_map: {},
1096
+ record1_id: 0)
1097
+ super
1098
+ self.record1_map = record1_map
1099
+ self.record1_id = record1_id
1100
+ end
1101
+
1102
+ # @override
1103
+ def schema
1104
+ 'Record1'
1105
+ end
1106
+
1107
+ # @override
1108
+ def namespace
1109
+ 'com.flipp.content'
1110
+ end
1111
+
1112
+ # @override
1113
+ def as_json(_opts={})
1114
+ {
1115
+ 'record1_map' => @record1_map,
1116
+ 'record1_id' => @record1_id
1117
+ }
1118
+ end
1119
+ end
1120
+
1121
+ # Autogenerated Schema for Record at com.flipp.content.Record2
1122
+ class Record2 < Deimos::SchemaClass::Record
1123
+
1124
+ ### Attribute Accessors ###
1125
+ # @return [String]
1126
+ attr_accessor :record2_id
1127
+
1128
+ # @override
1129
+ def initialize(record2_id: "")
1130
+ super
1131
+ self.record2_id = record2_id
1132
+ end
1133
+
1134
+ # @override
1135
+ def schema
1136
+ 'Record2'
1137
+ end
1138
+
1139
+ # @override
1140
+ def namespace
1141
+ 'com.flipp.content'
1142
+ end
1143
+
1144
+ # @override
1145
+ def as_json(_opts={})
1146
+ {
1147
+ 'record2_id' => @record2_id
1148
+ }
1149
+ end
1150
+ end
1151
+
1152
+ # Autogenerated Schema for Record at com.flipp.content.Record3
1153
+ class Record3 < Deimos::SchemaClass::Record
1154
+
1155
+ ### Attribute Accessors ###
1156
+ # @return [Float]
1157
+ attr_accessor :record3_id
1158
+
1159
+ # @override
1160
+ def initialize(record3_id: 0.0)
1161
+ super
1162
+ self.record3_id = record3_id
1163
+ end
1164
+
1165
+ # @override
1166
+ def schema
1167
+ 'Record3'
1168
+ end
1169
+
1170
+ # @override
1171
+ def namespace
1172
+ 'com.flipp.content'
1173
+ end
1174
+
1175
+ # @override
1176
+ def as_json(_opts={})
1177
+ {
1178
+ 'record3_id' => @record3_id
1179
+ }
1180
+ end
1181
+ end
1182
+
1183
+ # Autogenerated Schema for Record at com.flipp.content.Record4
1184
+ class Record4 < Deimos::SchemaClass::Record
1185
+
1186
+ ### Attribute Accessors ###
1187
+ # @return [Integer]
1188
+ attr_accessor :record4_id
1189
+
1190
+ # @override
1191
+ def initialize(record4_id: 0)
1192
+ super
1193
+ self.record4_id = record4_id
1194
+ end
1195
+
1196
+ # @override
1197
+ def schema
1198
+ 'Record4'
1199
+ end
1200
+
1201
+ # @override
1202
+ def namespace
1203
+ 'com.flipp.content'
1204
+ end
1205
+
1206
+ # @override
1207
+ def as_json(_opts={})
1208
+ {
1209
+ 'record4_id' => @record4_id
1210
+ }
1211
+ end
1212
+ end
1213
+
1214
+
1215
+ ### Attribute Readers ###
1216
+ # @return [nil, Record1, Record2, Record3, Record4, Integer, Array<String>]
1217
+ attr_reader :test_union_type
1218
+
1219
+ ### Attribute Accessors ###
1220
+ # @return [String]
1221
+ attr_accessor :test_id
1222
+ # @return [nil, Integer]
1223
+ attr_accessor :test_long
1224
+
1225
+ ### Attribute Writers ###
1226
+ # @return [nil, Record1, Record2, Record3, Record4, Integer, Array<String>]
1227
+ def test_union_type=(value)
1228
+ @test_union_type = Record1.initialize_from_value(value)
1229
+ end
1230
+
1231
+ # @override
1232
+ def initialize(test_id: "",
1233
+ test_long: nil,
1234
+ test_union_type: nil)
1235
+ super
1236
+ self.test_id = test_id
1237
+ self.test_long = test_long
1238
+ self.test_union_type = test_union_type
1239
+ end
1240
+
1241
+ # @override
1242
+ def schema
1243
+ 'MySchemaWithUnionType'
1244
+ end
1245
+
1246
+ # @override
1247
+ def namespace
1248
+ 'com.my-namespace'
1249
+ end
1250
+
1251
+ # @override
1252
+ def as_json(_opts={})
1253
+ {
1254
+ 'test_id' => @test_id,
1255
+ 'test_long' => @test_long,
1256
+ 'test_union_type' => @test_union_type&.as_json
1257
+ }
1258
+ end
1259
+ end
1260
+ end
1261
+
1262
+
1075
1263
  spec/app/lib/schema_classes/my_schema_with_unique_id.rb:
1076
1264
  # frozen_string_literal: true
1077
1265
 
data/spec/spec_helper.rb CHANGED
@@ -276,6 +276,31 @@ RSpec.shared_context('with widgets') do
276
276
  end
277
277
  end
278
278
 
279
+ RSpec.shared_context('with widget_with_union_types') do
280
+ before(:all) do
281
+ ActiveRecord::Base.connection.create_table(:widget_with_union_types, force: true) do |t|
282
+ t.string(:test_id)
283
+ t.bigint(:test_long)
284
+ t.json(:test_union_type)
285
+
286
+ t.timestamps
287
+ end
288
+
289
+ # :nodoc:
290
+ class WidgetWithUnionType < ActiveRecord::Base
291
+ # @return [String]
292
+ def generated_id
293
+ 'generated_id'
294
+ end
295
+ end
296
+ end
297
+
298
+ after(:all) do
299
+ ActiveRecord::Base.connection.drop_table(:widget_with_union_types)
300
+ end
301
+ end
302
+
303
+
279
304
  RSpec.shared_context('with DB') do
280
305
  before(:all) do
281
306
  setup_db(self.class.metadata[:db_config] || DbConfigs::DB_OPTIONS.last)
@@ -146,12 +146,14 @@ each_db_config(Deimos::Utils::OutboxProducer) do
146
146
  expect(producer).to receive(:send_pending_metrics).twice
147
147
  expect(producer).to receive(:produce_messages).ordered.with([
148
148
  {
149
+ already_encoded: true,
149
150
  payload: 'mess1',
150
151
  key: nil,
151
152
  partition_key: 'key1',
152
153
  topic: 'my-topic'
153
154
  },
154
155
  {
156
+ already_encoded: true,
155
157
  payload: 'mess2',
156
158
  key: nil,
157
159
  partition_key: 'key2',
@@ -167,12 +169,14 @@ each_db_config(Deimos::Utils::OutboxProducer) do
167
169
  and_return(messages[2..3])
168
170
  expect(producer).to receive(:produce_messages).ordered.with([
169
171
  {
172
+ already_encoded: true,
170
173
  payload: 'mess3',
171
174
  partition_key: 'key3',
172
175
  key: nil,
173
176
  topic: 'my-topic'
174
177
  },
175
178
  {
179
+ already_encoded: true,
176
180
  payload: 'mess4',
177
181
  partition_key: 'key4',
178
182
  key: nil,
@@ -357,12 +361,14 @@ each_db_config(Deimos::Utils::OutboxProducer) do
357
361
 
358
362
  expect(producer).to have_received(:produce_messages).with([
359
363
  {
364
+ already_encoded: true,
360
365
  payload: 'mess1',
361
366
  partition_key: 'key1',
362
367
  key: nil,
363
368
  topic: 'topic1'
364
369
  },
365
370
  {
371
+ already_encoded: true,
366
372
  payload: 'mess2',
367
373
  key: nil,
368
374
  partition_key: 'key2',
@@ -371,12 +377,14 @@ each_db_config(Deimos::Utils::OutboxProducer) do
371
377
  ])
372
378
  expect(producer).to have_received(:produce_messages).with([
373
379
  {
380
+ already_encoded: true,
374
381
  payload: 'mess3',
375
382
  key: nil,
376
383
  partition_key: 'key3',
377
384
  topic: 'topic1'
378
385
  },
379
386
  {
387
+ already_encoded: true,
380
388
  payload: 'mess4',
381
389
  key: nil,
382
390
  partition_key: 'key4',
@@ -385,12 +393,14 @@ each_db_config(Deimos::Utils::OutboxProducer) do
385
393
  ])
386
394
  expect(producer).to have_received(:produce_messages).with([
387
395
  {
396
+ already_encoded: true,
388
397
  payload: 'mess1',
389
398
  key: 'key1',
390
399
  partition_key: 'key1',
391
400
  topic: 'topic3'
392
401
  },
393
402
  {
403
+ already_encoded: true,
394
404
  payload: 'mess2',
395
405
  partition_key: 'key2',
396
406
  key: 'key2',
@@ -399,12 +409,14 @@ each_db_config(Deimos::Utils::OutboxProducer) do
399
409
  ])
400
410
  expect(producer).to have_received(:produce_messages).with([
401
411
  {
412
+ already_encoded: true,
402
413
  payload: 'mess3',
403
414
  key: 'key3',
404
415
  partition_key: 'key3',
405
416
  topic: 'topic3'
406
417
  },
407
418
  {
419
+ already_encoded: true,
408
420
  payload: 'mess4',
409
421
  partition_key: 'key4',
410
422
  key: 'key4',
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: deimos-ruby
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.0
4
+ version: 2.0.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Daniel Orner
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2025-03-03 00:00:00.000000000 Z
11
+ date: 2025-03-10 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: avro_turf
@@ -567,6 +567,7 @@ files:
567
567
  - spec/schemas/com/my-namespace/MySchemaWithDateTimes.avsc
568
568
  - spec/schemas/com/my-namespace/MySchemaWithId.avsc
569
569
  - spec/schemas/com/my-namespace/MySchemaWithTitle.avsc
570
+ - spec/schemas/com/my-namespace/MySchemaWithUnionType.avsc
570
571
  - spec/schemas/com/my-namespace/MySchemaWithUniqueId.avsc
571
572
  - spec/schemas/com/my-namespace/MySchema_key.avsc
572
573
  - spec/schemas/com/my-namespace/Wibble.avsc
@@ -591,6 +592,7 @@ files:
591
592
  - spec/schemas/my_namespace/my_schema_with_complex_type.rb
592
593
  - spec/schemas/my_namespace/my_schema_with_date_time.rb
593
594
  - spec/schemas/my_namespace/my_schema_with_id.rb
595
+ - spec/schemas/my_namespace/my_schema_with_union_type.rb
594
596
  - spec/schemas/my_namespace/my_schema_with_unique_id.rb
595
597
  - spec/schemas/my_namespace/my_updated_schema.rb
596
598
  - spec/schemas/my_namespace/request/create_topic.rb
@@ -694,6 +696,7 @@ test_files:
694
696
  - spec/schemas/com/my-namespace/MySchemaWithDateTimes.avsc
695
697
  - spec/schemas/com/my-namespace/MySchemaWithId.avsc
696
698
  - spec/schemas/com/my-namespace/MySchemaWithTitle.avsc
699
+ - spec/schemas/com/my-namespace/MySchemaWithUnionType.avsc
697
700
  - spec/schemas/com/my-namespace/MySchemaWithUniqueId.avsc
698
701
  - spec/schemas/com/my-namespace/MySchema_key.avsc
699
702
  - spec/schemas/com/my-namespace/Wibble.avsc
@@ -718,6 +721,7 @@ test_files:
718
721
  - spec/schemas/my_namespace/my_schema_with_complex_type.rb
719
722
  - spec/schemas/my_namespace/my_schema_with_date_time.rb
720
723
  - spec/schemas/my_namespace/my_schema_with_id.rb
724
+ - spec/schemas/my_namespace/my_schema_with_union_type.rb
721
725
  - spec/schemas/my_namespace/my_schema_with_unique_id.rb
722
726
  - spec/schemas/my_namespace/my_updated_schema.rb
723
727
  - spec/schemas/my_namespace/request/create_topic.rb