deimos-ruby 1.16.0 → 1.16.3
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/CHANGELOG.md +9 -1
- data/README.md +17 -0
- data/lib/deimos/active_record_producer.rb +7 -0
- data/lib/deimos/schema_class/base.rb +1 -1
- data/lib/deimos/schema_class/enum.rb +5 -0
- data/lib/deimos/schema_class/record.rb +7 -1
- data/lib/deimos/version.rb +1 -1
- data/lib/generators/deimos/schema_class/templates/schema_record.rb.tt +13 -5
- data/lib/generators/deimos/schema_class_generator.rb +40 -22
- data/regenerate_test_schema_classes.rb +68 -0
- data/spec/active_record_producer_spec.rb +24 -0
- data/spec/generators/schema_class/my_schema_spec.rb +16 -0
- data/spec/generators/schema_class/my_schema_with_circular_reference_spec.rb +1 -1
- data/spec/generators/schema_class/my_schema_with_complex_types_spec.rb +32 -24
- data/spec/producer_spec.rb +11 -11
- data/spec/schemas/{generated.rb → my_namespace/generated.rb} +28 -32
- data/spec/schemas/{my_nested_schema.rb → my_namespace/my_nested_schema.rb} +23 -16
- data/spec/schemas/{my_schema.rb → my_namespace/my_schema.rb} +12 -5
- data/spec/schemas/my_namespace/my_schema_compound_key.rb +41 -0
- data/spec/schemas/my_namespace/my_schema_id_key.rb +36 -0
- data/spec/schemas/{my_schema_key.rb → my_namespace/my_schema_key.rb} +3 -3
- data/spec/schemas/my_namespace/my_schema_with_boolean.rb +41 -0
- data/spec/schemas/{my_schema_with_circular_reference.rb → my_namespace/my_schema_with_circular_reference.rb} +15 -10
- data/spec/schemas/{my_schema_with_complex_type.rb → my_namespace/my_schema_with_complex_type.rb} +34 -49
- data/spec/schemas/my_namespace/my_schema_with_date_time.rb +56 -0
- data/spec/schemas/my_namespace/my_schema_with_id.rb +51 -0
- data/spec/schemas/my_namespace/my_schema_with_unique_id.rb +56 -0
- data/spec/schemas/my_namespace/wibble.rb +76 -0
- data/spec/schemas/my_namespace/widget.rb +56 -0
- data/spec/schemas/my_namespace/widget_the_second.rb +56 -0
- data/spec/schemas/request/create_topic.rb +36 -0
- data/spec/schemas/request/index.rb +36 -0
- data/spec/schemas/request/update_request.rb +36 -0
- data/spec/schemas/response/create_topic.rb +36 -0
- data/spec/schemas/response/index.rb +36 -0
- data/spec/schemas/response/update_response.rb +36 -0
- data/spec/snapshots/consumers-no-nest.snap +93 -86
- data/spec/snapshots/consumers.snap +94 -87
- data/spec/snapshots/consumers_and_producers-no-nest.snap +108 -87
- data/spec/snapshots/consumers_and_producers.snap +109 -88
- data/spec/snapshots/consumers_circular-no-nest.snap +93 -86
- data/spec/snapshots/consumers_circular.snap +94 -87
- data/spec/snapshots/consumers_complex_types-no-nest.snap +93 -86
- data/spec/snapshots/consumers_complex_types.snap +94 -87
- data/spec/snapshots/consumers_nested-no-nest.snap +93 -86
- data/spec/snapshots/consumers_nested.snap +94 -87
- data/spec/snapshots/namespace_folders.snap +111 -90
- data/spec/snapshots/producers_with_key-no-nest.snap +94 -87
- data/spec/snapshots/producers_with_key.snap +95 -88
- data/spec/spec_helper.rb +2 -1
- metadata +48 -15
@@ -8,7 +8,7 @@ module Schemas
|
|
8
8
|
class CreateTopic < Deimos::SchemaClass::Record
|
9
9
|
|
10
10
|
### Attribute Accessors ###
|
11
|
-
# @
|
11
|
+
# @return [String]
|
12
12
|
attr_accessor :response_id
|
13
13
|
|
14
14
|
# @override
|
@@ -51,7 +51,7 @@ module Schemas
|
|
51
51
|
class ARecord < Deimos::SchemaClass::Record
|
52
52
|
|
53
53
|
### Attribute Accessors ###
|
54
|
-
# @
|
54
|
+
# @return [String]
|
55
55
|
attr_accessor :a_record_field
|
56
56
|
|
57
57
|
# @override
|
@@ -97,34 +97,34 @@ module Schemas
|
|
97
97
|
attr_reader :a_record
|
98
98
|
|
99
99
|
### Attribute Accessors ###
|
100
|
-
# @
|
100
|
+
# @return [String]
|
101
101
|
attr_accessor :a_string
|
102
|
-
# @
|
102
|
+
# @return [Integer]
|
103
103
|
attr_accessor :a_int
|
104
|
-
# @
|
104
|
+
# @return [Integer]
|
105
105
|
attr_accessor :a_long
|
106
|
-
# @
|
106
|
+
# @return [Float]
|
107
107
|
attr_accessor :a_float
|
108
|
-
# @
|
108
|
+
# @return [Float]
|
109
109
|
attr_accessor :a_double
|
110
|
-
# @
|
110
|
+
# @return [nil, Integer]
|
111
111
|
attr_accessor :an_optional_int
|
112
|
-
# @
|
112
|
+
# @return [Array<Integer>]
|
113
113
|
attr_accessor :an_array
|
114
|
-
# @
|
114
|
+
# @return [Hash<String, String>]
|
115
115
|
attr_accessor :a_map
|
116
|
-
# @
|
116
|
+
# @return [String]
|
117
117
|
attr_accessor :timestamp
|
118
|
-
# @
|
118
|
+
# @return [String]
|
119
119
|
attr_accessor :message_id
|
120
120
|
|
121
121
|
### Attribute Writers ###
|
122
|
-
# @
|
122
|
+
# @return [AnEnum]
|
123
123
|
def an_enum=(value)
|
124
124
|
@an_enum = AnEnum.initialize_from_value(value)
|
125
125
|
end
|
126
126
|
|
127
|
-
# @
|
127
|
+
# @return [ARecord]
|
128
128
|
def a_record=(value)
|
129
129
|
@a_record = ARecord.initialize_from_value(value)
|
130
130
|
end
|
@@ -167,6 +167,13 @@ module Schemas
|
|
167
167
|
'com.my-namespace'
|
168
168
|
end
|
169
169
|
|
170
|
+
def self.tombstone(key)
|
171
|
+
record = self.new
|
172
|
+
record.tombstone_key = key
|
173
|
+
record.a_string = key
|
174
|
+
record
|
175
|
+
end
|
176
|
+
|
170
177
|
# @override
|
171
178
|
def as_json(_opts={})
|
172
179
|
{
|
@@ -198,7 +205,7 @@ module Schemas
|
|
198
205
|
class Index < Deimos::SchemaClass::Record
|
199
206
|
|
200
207
|
### Attribute Accessors ###
|
201
|
-
# @
|
208
|
+
# @return [String]
|
202
209
|
attr_accessor :response_id
|
203
210
|
|
204
211
|
# @override
|
@@ -241,13 +248,13 @@ module Schemas
|
|
241
248
|
class MyNestedRecord < Deimos::SchemaClass::Record
|
242
249
|
|
243
250
|
### Attribute Accessors ###
|
244
|
-
# @
|
251
|
+
# @return [Integer]
|
245
252
|
attr_accessor :some_int
|
246
|
-
# @
|
253
|
+
# @return [Float]
|
247
254
|
attr_accessor :some_float
|
248
|
-
# @
|
255
|
+
# @return [String]
|
249
256
|
attr_accessor :some_string
|
250
|
-
# @
|
257
|
+
# @return [nil, Integer]
|
251
258
|
attr_accessor :some_optional_int
|
252
259
|
|
253
260
|
# @override
|
@@ -291,20 +298,20 @@ module Schemas
|
|
291
298
|
attr_reader :some_optional_record
|
292
299
|
|
293
300
|
### Attribute Accessors ###
|
294
|
-
# @
|
301
|
+
# @return [String]
|
295
302
|
attr_accessor :test_id
|
296
|
-
# @
|
303
|
+
# @return [Float]
|
297
304
|
attr_accessor :test_float
|
298
|
-
# @
|
305
|
+
# @return [Array<String>]
|
299
306
|
attr_accessor :test_array
|
300
307
|
|
301
308
|
### Attribute Writers ###
|
302
|
-
# @
|
309
|
+
# @return [MyNestedRecord]
|
303
310
|
def some_nested_record=(value)
|
304
311
|
@some_nested_record = MyNestedRecord.initialize_from_value(value)
|
305
312
|
end
|
306
313
|
|
307
|
-
# @
|
314
|
+
# @return [nil, MyNestedRecord]
|
308
315
|
def some_optional_record=(value)
|
309
316
|
@some_optional_record = MyNestedRecord.initialize_from_value(value)
|
310
317
|
end
|
@@ -357,9 +364,9 @@ module Schemas
|
|
357
364
|
class MySchema < Deimos::SchemaClass::Record
|
358
365
|
|
359
366
|
### Attribute Accessors ###
|
360
|
-
# @
|
367
|
+
# @return [String]
|
361
368
|
attr_accessor :test_id
|
362
|
-
# @
|
369
|
+
# @return [Integer]
|
363
370
|
attr_accessor :some_int
|
364
371
|
|
365
372
|
# @override
|
@@ -401,9 +408,9 @@ module Schemas
|
|
401
408
|
class MySchemaCompoundKey < Deimos::SchemaClass::Record
|
402
409
|
|
403
410
|
### Attribute Accessors ###
|
404
|
-
# @
|
411
|
+
# @return [String]
|
405
412
|
attr_accessor :part_one
|
406
|
-
# @
|
413
|
+
# @return [String]
|
407
414
|
attr_accessor :part_two
|
408
415
|
|
409
416
|
# @override
|
@@ -445,7 +452,7 @@ module Schemas
|
|
445
452
|
class MySchemaIdKey < Deimos::SchemaClass::Record
|
446
453
|
|
447
454
|
### Attribute Accessors ###
|
448
|
-
# @
|
455
|
+
# @return [Integer]
|
449
456
|
attr_accessor :id
|
450
457
|
|
451
458
|
# @override
|
@@ -484,7 +491,7 @@ module Schemas
|
|
484
491
|
class MySchemaKey < Deimos::SchemaClass::Record
|
485
492
|
|
486
493
|
### Attribute Accessors ###
|
487
|
-
# @
|
494
|
+
# @return [String]
|
488
495
|
attr_accessor :test_id
|
489
496
|
|
490
497
|
# @override
|
@@ -523,9 +530,9 @@ module Schemas
|
|
523
530
|
class MySchemaWithBoolean < Deimos::SchemaClass::Record
|
524
531
|
|
525
532
|
### Attribute Accessors ###
|
526
|
-
# @
|
533
|
+
# @return [String]
|
527
534
|
attr_accessor :test_id
|
528
|
-
# @
|
535
|
+
# @return [Boolean]
|
529
536
|
attr_accessor :some_bool
|
530
537
|
|
531
538
|
# @override
|
@@ -571,7 +578,7 @@ module Schemas
|
|
571
578
|
class Property < Deimos::SchemaClass::Record
|
572
579
|
|
573
580
|
### Attribute Accessors ###
|
574
|
-
# @
|
581
|
+
# @return [Boolean, Integer, Integer, Float, Float, String, Array<Property>, Hash<String, Property>]
|
575
582
|
attr_accessor :property
|
576
583
|
|
577
584
|
# @override
|
@@ -604,9 +611,9 @@ module Schemas
|
|
604
611
|
attr_reader :properties
|
605
612
|
|
606
613
|
### Attribute Writers ###
|
607
|
-
# @
|
614
|
+
# @return [Hash<String, Property>]
|
608
615
|
def properties=(values)
|
609
|
-
@properties = values
|
616
|
+
@properties = values&.transform_values do |value|
|
610
617
|
Property.initialize_from_value(value)
|
611
618
|
end
|
612
619
|
end
|
@@ -651,7 +658,7 @@ module Schemas
|
|
651
658
|
class ARecord < Deimos::SchemaClass::Record
|
652
659
|
|
653
660
|
### Attribute Accessors ###
|
654
|
-
# @
|
661
|
+
# @return [String]
|
655
662
|
attr_accessor :a_record_field
|
656
663
|
|
657
664
|
# @override
|
@@ -729,57 +736,57 @@ module Schemas
|
|
729
736
|
attr_reader :some_enum_with_default
|
730
737
|
|
731
738
|
### Attribute Accessors ###
|
732
|
-
# @
|
739
|
+
# @return [String]
|
733
740
|
attr_accessor :test_id
|
734
|
-
# @
|
741
|
+
# @return [Float]
|
735
742
|
attr_accessor :test_float
|
736
|
-
# @
|
743
|
+
# @return [Array<String>]
|
737
744
|
attr_accessor :test_string_array
|
738
|
-
# @
|
745
|
+
# @return [Array<Integer>]
|
739
746
|
attr_accessor :test_int_array
|
740
|
-
# @
|
747
|
+
# @return [Integer, nil]
|
741
748
|
attr_accessor :test_optional_int
|
742
|
-
# @
|
749
|
+
# @return [Hash<String, Integer>]
|
743
750
|
attr_accessor :some_integer_map
|
744
751
|
|
745
752
|
### Attribute Writers ###
|
746
|
-
# @
|
753
|
+
# @return [ARecord]
|
747
754
|
def some_record=(value)
|
748
755
|
@some_record = ARecord.initialize_from_value(value)
|
749
756
|
end
|
750
757
|
|
751
|
-
# @
|
758
|
+
# @return [nil, ARecord]
|
752
759
|
def some_optional_record=(value)
|
753
760
|
@some_optional_record = ARecord.initialize_from_value(value)
|
754
761
|
end
|
755
762
|
|
756
|
-
# @
|
763
|
+
# @return [Array<ARecord>]
|
757
764
|
def some_record_array=(values)
|
758
|
-
@some_record_array = values
|
765
|
+
@some_record_array = values&.map do |value|
|
759
766
|
ARecord.initialize_from_value(value)
|
760
767
|
end
|
761
768
|
end
|
762
769
|
|
763
|
-
# @
|
770
|
+
# @return [Hash<String, ARecord>]
|
764
771
|
def some_record_map=(values)
|
765
|
-
@some_record_map = values
|
772
|
+
@some_record_map = values&.transform_values do |value|
|
766
773
|
ARecord.initialize_from_value(value)
|
767
774
|
end
|
768
775
|
end
|
769
776
|
|
770
|
-
# @
|
777
|
+
# @return [Array<AnEnum>]
|
771
778
|
def some_enum_array=(values)
|
772
|
-
@some_enum_array = values
|
779
|
+
@some_enum_array = values&.map do |value|
|
773
780
|
AnEnum.initialize_from_value(value)
|
774
781
|
end
|
775
782
|
end
|
776
783
|
|
777
|
-
# @
|
784
|
+
# @return [nil, AnotherEnum]
|
778
785
|
def some_optional_enum=(value)
|
779
786
|
@some_optional_enum = AnotherEnum.initialize_from_value(value)
|
780
787
|
end
|
781
788
|
|
782
|
-
# @
|
789
|
+
# @return [YetAnotherEnum]
|
783
790
|
def some_enum_with_default=(value)
|
784
791
|
@some_enum_with_default = YetAnotherEnum.initialize_from_value(value)
|
785
792
|
end
|
@@ -856,15 +863,15 @@ module Schemas
|
|
856
863
|
class MySchemaWithDateTime < Deimos::SchemaClass::Record
|
857
864
|
|
858
865
|
### Attribute Accessors ###
|
859
|
-
# @
|
866
|
+
# @return [String]
|
860
867
|
attr_accessor :test_id
|
861
|
-
# @
|
868
|
+
# @return [Integer, nil]
|
862
869
|
attr_accessor :updated_at
|
863
|
-
# @
|
870
|
+
# @return [nil, Integer]
|
864
871
|
attr_accessor :some_int
|
865
|
-
# @
|
872
|
+
# @return [nil, Integer]
|
866
873
|
attr_accessor :some_datetime_int
|
867
|
-
# @
|
874
|
+
# @return [String]
|
868
875
|
attr_accessor :timestamp
|
869
876
|
|
870
877
|
# @override
|
@@ -915,13 +922,13 @@ module Schemas
|
|
915
922
|
class MySchemaWithId < Deimos::SchemaClass::Record
|
916
923
|
|
917
924
|
### Attribute Accessors ###
|
918
|
-
# @
|
925
|
+
# @return [String]
|
919
926
|
attr_accessor :test_id
|
920
|
-
# @
|
927
|
+
# @return [Integer]
|
921
928
|
attr_accessor :some_int
|
922
|
-
# @
|
929
|
+
# @return [String]
|
923
930
|
attr_accessor :message_id
|
924
|
-
# @
|
931
|
+
# @return [String]
|
925
932
|
attr_accessor :timestamp
|
926
933
|
|
927
934
|
# @override
|
@@ -969,15 +976,15 @@ module Schemas
|
|
969
976
|
class MySchemaWithUniqueId < Deimos::SchemaClass::Record
|
970
977
|
|
971
978
|
### Attribute Accessors ###
|
972
|
-
# @
|
979
|
+
# @return [Integer]
|
973
980
|
attr_accessor :id
|
974
|
-
# @
|
981
|
+
# @return [String]
|
975
982
|
attr_accessor :test_id
|
976
|
-
# @
|
983
|
+
# @return [Integer]
|
977
984
|
attr_accessor :some_int
|
978
|
-
# @
|
985
|
+
# @return [String]
|
979
986
|
attr_accessor :message_id
|
980
|
-
# @
|
987
|
+
# @return [String]
|
981
988
|
attr_accessor :timestamp
|
982
989
|
|
983
990
|
# @override
|
@@ -1028,7 +1035,7 @@ module Schemas
|
|
1028
1035
|
class UpdateRequest < Deimos::SchemaClass::Record
|
1029
1036
|
|
1030
1037
|
### Attribute Accessors ###
|
1031
|
-
# @
|
1038
|
+
# @return [String]
|
1032
1039
|
attr_accessor :update_request_id
|
1033
1040
|
|
1034
1041
|
# @override
|
@@ -1067,7 +1074,7 @@ module Schemas
|
|
1067
1074
|
class UpdateResponse < Deimos::SchemaClass::Record
|
1068
1075
|
|
1069
1076
|
### Attribute Accessors ###
|
1070
|
-
# @
|
1077
|
+
# @return [String]
|
1071
1078
|
attr_accessor :update_response_id
|
1072
1079
|
|
1073
1080
|
# @override
|
@@ -1106,23 +1113,23 @@ module Schemas
|
|
1106
1113
|
class Wibble < Deimos::SchemaClass::Record
|
1107
1114
|
|
1108
1115
|
### Attribute Accessors ###
|
1109
|
-
# @
|
1116
|
+
# @return [Integer]
|
1110
1117
|
attr_accessor :id
|
1111
|
-
# @
|
1118
|
+
# @return [Integer]
|
1112
1119
|
attr_accessor :wibble_id
|
1113
|
-
# @
|
1120
|
+
# @return [String]
|
1114
1121
|
attr_accessor :name
|
1115
|
-
# @
|
1122
|
+
# @return [String]
|
1116
1123
|
attr_accessor :floop
|
1117
|
-
# @
|
1124
|
+
# @return [Integer]
|
1118
1125
|
attr_accessor :birthday_int
|
1119
|
-
# @
|
1126
|
+
# @return [Integer]
|
1120
1127
|
attr_accessor :birthday_long
|
1121
|
-
# @
|
1128
|
+
# @return [nil, Integer]
|
1122
1129
|
attr_accessor :birthday_optional
|
1123
|
-
# @
|
1130
|
+
# @return [Integer]
|
1124
1131
|
attr_accessor :updated_at
|
1125
|
-
# @
|
1132
|
+
# @return [Integer]
|
1126
1133
|
attr_accessor :created_at
|
1127
1134
|
|
1128
1135
|
# @override
|
@@ -1185,15 +1192,15 @@ module Schemas
|
|
1185
1192
|
class Widget < Deimos::SchemaClass::Record
|
1186
1193
|
|
1187
1194
|
### Attribute Accessors ###
|
1188
|
-
# @
|
1195
|
+
# @return [Integer]
|
1189
1196
|
attr_accessor :id
|
1190
|
-
# @
|
1197
|
+
# @return [Integer]
|
1191
1198
|
attr_accessor :widget_id
|
1192
|
-
# @
|
1199
|
+
# @return [String]
|
1193
1200
|
attr_accessor :name
|
1194
|
-
# @
|
1201
|
+
# @return [Integer]
|
1195
1202
|
attr_accessor :updated_at
|
1196
|
-
# @
|
1203
|
+
# @return [Integer]
|
1197
1204
|
attr_accessor :created_at
|
1198
1205
|
|
1199
1206
|
# @override
|
@@ -1244,15 +1251,15 @@ module Schemas
|
|
1244
1251
|
class WidgetTheSecond < Deimos::SchemaClass::Record
|
1245
1252
|
|
1246
1253
|
### Attribute Accessors ###
|
1247
|
-
# @
|
1254
|
+
# @return [Integer]
|
1248
1255
|
attr_accessor :id
|
1249
|
-
# @
|
1256
|
+
# @return [Integer]
|
1250
1257
|
attr_accessor :widget_id
|
1251
|
-
# @
|
1258
|
+
# @return [String]
|
1252
1259
|
attr_accessor :model_id
|
1253
|
-
# @
|
1260
|
+
# @return [Integer]
|
1254
1261
|
attr_accessor :updated_at
|
1255
|
-
# @
|
1262
|
+
# @return [Integer]
|
1256
1263
|
attr_accessor :created_at
|
1257
1264
|
|
1258
1265
|
# @override
|