deimos-ruby 1.15.1 → 1.16.2

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 (42) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +13 -0
  3. data/README.md +15 -0
  4. data/lib/deimos/active_record_producer.rb +8 -1
  5. data/lib/deimos/consumer.rb +3 -1
  6. data/lib/deimos/schema_class/base.rb +2 -25
  7. data/lib/deimos/schema_class/enum.rb +23 -0
  8. data/lib/deimos/schema_class/record.rb +15 -4
  9. data/lib/deimos/test_helpers.rb +3 -2
  10. data/lib/deimos/tracing/datadog.rb +11 -0
  11. data/lib/deimos/tracing/mock.rb +10 -0
  12. data/lib/deimos/tracing/provider.rb +13 -0
  13. data/lib/deimos/utils/schema_class.rb +16 -2
  14. data/lib/deimos/utils/schema_controller_mixin.rb +7 -1
  15. data/lib/deimos/version.rb +1 -1
  16. data/lib/generators/deimos/schema_class/templates/schema_enum.rb.tt +0 -11
  17. data/lib/generators/deimos/schema_class/templates/schema_record.rb.tt +2 -2
  18. data/lib/generators/deimos/schema_class_generator.rb +6 -10
  19. data/spec/active_record_producer_spec.rb +24 -0
  20. data/spec/batch_consumer_spec.rb +13 -10
  21. data/spec/generators/schema_class/my_schema_with_circular_reference_spec.rb +19 -19
  22. data/spec/generators/schema_class/my_schema_with_complex_types_spec.rb +2 -2
  23. data/spec/schemas/generated.rb +5 -5
  24. data/spec/schemas/my_nested_schema.rb +4 -4
  25. data/spec/schemas/my_schema.rb +2 -2
  26. data/spec/schemas/my_schema_key.rb +1 -1
  27. data/spec/schemas/my_schema_with_circular_reference.rb +3 -3
  28. data/spec/schemas/my_schema_with_complex_type.rb +11 -22
  29. data/spec/snapshots/consumers-no-nest.snap +34 -67
  30. data/spec/snapshots/consumers.snap +35 -79
  31. data/spec/snapshots/consumers_and_producers-no-nest.snap +35 -68
  32. data/spec/snapshots/consumers_and_producers.snap +36 -80
  33. data/spec/snapshots/consumers_circular-no-nest.snap +34 -67
  34. data/spec/snapshots/consumers_circular.snap +35 -79
  35. data/spec/snapshots/consumers_complex_types-no-nest.snap +34 -67
  36. data/spec/snapshots/consumers_complex_types.snap +35 -79
  37. data/spec/snapshots/consumers_nested-no-nest.snap +34 -67
  38. data/spec/snapshots/consumers_nested.snap +35 -79
  39. data/spec/snapshots/namespace_folders.snap +53 -97
  40. data/spec/snapshots/producers_with_key-no-nest.snap +35 -68
  41. data/spec/snapshots/producers_with_key.snap +36 -80
  42. metadata +2 -2
@@ -43,7 +43,7 @@ module Schemas
43
43
  end
44
44
 
45
45
  # @override
46
- def to_h
46
+ def as_json(_opts={})
47
47
  {
48
48
  'some_int' => @some_int,
49
49
  'some_float' => @some_float,
@@ -104,13 +104,13 @@ module Schemas
104
104
  end
105
105
 
106
106
  # @override
107
- def to_h
107
+ def as_json(_opts={})
108
108
  {
109
109
  'test_id' => @test_id,
110
110
  'test_float' => @test_float,
111
111
  'test_array' => @test_array,
112
- 'some_nested_record' => @some_nested_record&.to_h,
113
- 'some_optional_record' => @some_optional_record&.to_h
112
+ 'some_nested_record' => @some_nested_record&.as_json,
113
+ 'some_optional_record' => @some_optional_record&.as_json
114
114
  }
115
115
  end
116
116
  end
@@ -43,11 +43,11 @@ module Schemas
43
43
  end
44
44
 
45
45
  # @override
46
- def to_h
46
+ def as_json(_opts={})
47
47
  {
48
48
  'test_id' => @test_id,
49
49
  'some_int' => @some_int,
50
- 'payload_key' => @payload_key&.to_h
50
+ 'payload_key' => @payload_key&.as_json
51
51
  }
52
52
  end
53
53
  end
@@ -27,7 +27,7 @@ module Schemas
27
27
  end
28
28
 
29
29
  # @override
30
- def to_h
30
+ def as_json(_opts={})
31
31
  {
32
32
  'test_id' => @test_id
33
33
  }
@@ -31,7 +31,7 @@ module Schemas
31
31
  end
32
32
 
33
33
  # @override
34
- def to_h
34
+ def as_json(_opts={})
35
35
  {
36
36
  'property' => @property
37
37
  }
@@ -68,9 +68,9 @@ module Schemas
68
68
  end
69
69
 
70
70
  # @override
71
- def to_h
71
+ def as_json(_opts={})
72
72
  {
73
- 'properties' => @properties.transform_values { |v| v&.to_h }
73
+ 'properties' => @properties.transform_values { |v| v&.as_json }
74
74
  }
75
75
  end
76
76
  end
@@ -31,7 +31,7 @@ module Schemas
31
31
  end
32
32
 
33
33
  # @override
34
- def to_h
34
+ def as_json(_opts={})
35
35
  {
36
36
  'a_record_field' => @a_record_field
37
37
  }
@@ -43,21 +43,10 @@ module Schemas
43
43
  # @return ['sym1', 'sym2']
44
44
  attr_accessor :an_enum
45
45
 
46
- # :nodoc:
47
- def initialize(an_enum)
48
- super
49
- self.an_enum = an_enum
50
- end
51
-
52
46
  # @override
53
47
  def symbols
54
48
  %w(sym1 sym2)
55
49
  end
56
-
57
- # @override
58
- def to_h
59
- @an_enum
60
- end
61
50
  end
62
51
 
63
52
  # Autogenerated Schema for Enum at com.my-namespace.AnotherEnum
@@ -77,7 +66,7 @@ module Schemas
77
66
  end
78
67
 
79
68
  # @override
80
- def to_h
69
+ def as_json(_opts={})
81
70
  @another_enum
82
71
  end
83
72
  end
@@ -99,7 +88,7 @@ module Schemas
99
88
  end
100
89
 
101
90
  # @override
102
- def to_h
91
+ def as_json(_opts={})
103
92
  @yet_another_enum
104
93
  end
105
94
  end
@@ -218,7 +207,7 @@ module Schemas
218
207
  end
219
208
 
220
209
  # @override
221
- def to_h
210
+ def as_json(_opts={})
222
211
  {
223
212
  'test_id' => @test_id,
224
213
  'test_float' => @test_float,
@@ -226,13 +215,13 @@ module Schemas
226
215
  'test_int_array' => @test_int_array,
227
216
  'test_optional_int' => @test_optional_int,
228
217
  'some_integer_map' => @some_integer_map,
229
- 'some_record' => @some_record&.to_h,
230
- 'some_optional_record' => @some_optional_record&.to_h,
231
- 'some_record_array' => @some_record_array.map { |v| v&.to_h },
232
- 'some_record_map' => @some_record_map.transform_values { |v| v&.to_h },
233
- 'some_enum_array' => @some_enum_array.map { |v| v&.to_h },
234
- 'some_optional_enum' => @some_optional_enum&.to_h,
235
- 'some_enum_with_default' => @some_enum_with_default&.to_h
218
+ 'some_record' => @some_record&.as_json,
219
+ 'some_optional_record' => @some_optional_record&.as_json,
220
+ 'some_record_array' => @some_record_array.map { |v| v&.as_json },
221
+ 'some_record_map' => @some_record_map.transform_values { |v| v&.as_json },
222
+ 'some_enum_array' => @some_enum_array.map { |v| v&.as_json },
223
+ 'some_optional_enum' => @some_optional_enum&.as_json,
224
+ 'some_enum_with_default' => @some_enum_with_default&.as_json
236
225
  }
237
226
  end
238
227
  end
@@ -28,7 +28,7 @@ module Schemas
28
28
  end
29
29
 
30
30
  # @override
31
- def to_h
31
+ def as_json(_opts={})
32
32
  {
33
33
  'a_record_field' => @a_record_field
34
34
  }
@@ -48,21 +48,10 @@ module Schemas
48
48
  # @return ['sym1', 'sym2']
49
49
  attr_accessor :an_enum
50
50
 
51
- # :nodoc:
52
- def initialize(an_enum)
53
- super
54
- self.an_enum = an_enum
55
- end
56
-
57
51
  # @override
58
52
  def symbols
59
53
  %w(sym1 sym2)
60
54
  end
61
-
62
- # @override
63
- def to_h
64
- @an_enum
65
- end
66
55
  end
67
56
  end
68
57
 
@@ -78,21 +67,10 @@ module Schemas
78
67
  # @return ['sym3', 'sym4']
79
68
  attr_accessor :another_enum
80
69
 
81
- # :nodoc:
82
- def initialize(another_enum)
83
- super
84
- self.another_enum = another_enum
85
- end
86
-
87
70
  # @override
88
71
  def symbols
89
72
  %w(sym3 sym4)
90
73
  end
91
-
92
- # @override
93
- def to_h
94
- @another_enum
95
- end
96
74
  end
97
75
  end
98
76
 
@@ -127,7 +105,7 @@ module Schemas
127
105
  end
128
106
 
129
107
  # @override
130
- def to_h
108
+ def as_json(_opts={})
131
109
  {
132
110
  'response_id' => @response_id
133
111
  }
@@ -223,7 +201,7 @@ module Schemas
223
201
  end
224
202
 
225
203
  # @override
226
- def to_h
204
+ def as_json(_opts={})
227
205
  {
228
206
  'a_string' => @a_string,
229
207
  'a_int' => @a_int,
@@ -231,12 +209,12 @@ module Schemas
231
209
  'a_float' => @a_float,
232
210
  'a_double' => @a_double,
233
211
  'an_optional_int' => @an_optional_int,
234
- 'an_enum' => @an_enum&.to_h,
212
+ 'an_enum' => @an_enum&.as_json,
235
213
  'an_array' => @an_array,
236
214
  'a_map' => @a_map,
237
215
  'timestamp' => @timestamp,
238
216
  'message_id' => @message_id,
239
- 'a_record' => @a_record&.to_h
217
+ 'a_record' => @a_record&.as_json
240
218
  }
241
219
  end
242
220
  end
@@ -273,7 +251,7 @@ module Schemas
273
251
  end
274
252
 
275
253
  # @override
276
- def to_h
254
+ def as_json(_opts={})
277
255
  {
278
256
  'response_id' => @response_id
279
257
  }
@@ -324,7 +302,7 @@ module Schemas
324
302
  end
325
303
 
326
304
  # @override
327
- def to_h
305
+ def as_json(_opts={})
328
306
  {
329
307
  'some_int' => @some_int,
330
308
  'some_float' => @some_float,
@@ -395,13 +373,13 @@ module Schemas
395
373
  end
396
374
 
397
375
  # @override
398
- def to_h
376
+ def as_json(_opts={})
399
377
  {
400
378
  'test_id' => @test_id,
401
379
  'test_float' => @test_float,
402
380
  'test_array' => @test_array,
403
- 'some_nested_record' => @some_nested_record&.to_h,
404
- 'some_optional_record' => @some_optional_record&.to_h
381
+ 'some_nested_record' => @some_nested_record&.as_json,
382
+ 'some_optional_record' => @some_optional_record&.as_json
405
383
  }
406
384
  end
407
385
  end
@@ -442,7 +420,7 @@ module Schemas
442
420
  end
443
421
 
444
422
  # @override
445
- def to_h
423
+ def as_json(_opts={})
446
424
  {
447
425
  'test_id' => @test_id,
448
426
  'some_int' => @some_int
@@ -486,7 +464,7 @@ module Schemas
486
464
  end
487
465
 
488
466
  # @override
489
- def to_h
467
+ def as_json(_opts={})
490
468
  {
491
469
  'part_one' => @part_one,
492
470
  'part_two' => @part_two
@@ -526,7 +504,7 @@ module Schemas
526
504
  end
527
505
 
528
506
  # @override
529
- def to_h
507
+ def as_json(_opts={})
530
508
  {
531
509
  'id' => @id
532
510
  }
@@ -565,7 +543,7 @@ module Schemas
565
543
  end
566
544
 
567
545
  # @override
568
- def to_h
546
+ def as_json(_opts={})
569
547
  {
570
548
  'test_id' => @test_id
571
549
  }
@@ -608,7 +586,7 @@ module Schemas
608
586
  end
609
587
 
610
588
  # @override
611
- def to_h
589
+ def as_json(_opts={})
612
590
  {
613
591
  'test_id' => @test_id,
614
592
  'some_bool' => @some_bool
@@ -656,9 +634,9 @@ module Schemas
656
634
  end
657
635
 
658
636
  # @override
659
- def to_h
637
+ def as_json(_opts={})
660
638
  {
661
- 'properties' => @properties.transform_values { |v| v&.to_h }
639
+ 'properties' => @properties.transform_values { |v| v&.as_json }
662
640
  }
663
641
  end
664
642
  end
@@ -787,7 +765,7 @@ module Schemas
787
765
  end
788
766
 
789
767
  # @override
790
- def to_h
768
+ def as_json(_opts={})
791
769
  {
792
770
  'test_id' => @test_id,
793
771
  'test_float' => @test_float,
@@ -795,13 +773,13 @@ module Schemas
795
773
  'test_int_array' => @test_int_array,
796
774
  'test_optional_int' => @test_optional_int,
797
775
  'some_integer_map' => @some_integer_map,
798
- 'some_record' => @some_record&.to_h,
799
- 'some_optional_record' => @some_optional_record&.to_h,
800
- 'some_record_array' => @some_record_array.map { |v| v&.to_h },
801
- 'some_record_map' => @some_record_map.transform_values { |v| v&.to_h },
802
- 'some_enum_array' => @some_enum_array.map { |v| v&.to_h },
803
- 'some_optional_enum' => @some_optional_enum&.to_h,
804
- 'some_enum_with_default' => @some_enum_with_default&.to_h
776
+ 'some_record' => @some_record&.as_json,
777
+ 'some_optional_record' => @some_optional_record&.as_json,
778
+ 'some_record_array' => @some_record_array.map { |v| v&.as_json },
779
+ 'some_record_map' => @some_record_map.transform_values { |v| v&.as_json },
780
+ 'some_enum_array' => @some_enum_array.map { |v| v&.as_json },
781
+ 'some_optional_enum' => @some_optional_enum&.as_json,
782
+ 'some_enum_with_default' => @some_enum_with_default&.as_json
805
783
  }
806
784
  end
807
785
  end
@@ -854,7 +832,7 @@ module Schemas
854
832
  end
855
833
 
856
834
  # @override
857
- def to_h
835
+ def as_json(_opts={})
858
836
  {
859
837
  'test_id' => @test_id,
860
838
  'updated_at' => @updated_at,
@@ -909,7 +887,7 @@ module Schemas
909
887
  end
910
888
 
911
889
  # @override
912
- def to_h
890
+ def as_json(_opts={})
913
891
  {
914
892
  'test_id' => @test_id,
915
893
  'some_int' => @some_int,
@@ -967,7 +945,7 @@ module Schemas
967
945
  end
968
946
 
969
947
  # @override
970
- def to_h
948
+ def as_json(_opts={})
971
949
  {
972
950
  'id' => @id,
973
951
  'test_id' => @test_id,
@@ -1010,7 +988,7 @@ module Schemas
1010
988
  end
1011
989
 
1012
990
  # @override
1013
- def to_h
991
+ def as_json(_opts={})
1014
992
  {
1015
993
  'property' => @property
1016
994
  }
@@ -1049,7 +1027,7 @@ module Schemas
1049
1027
  end
1050
1028
 
1051
1029
  # @override
1052
- def to_h
1030
+ def as_json(_opts={})
1053
1031
  {
1054
1032
  'update_request_id' => @update_request_id
1055
1033
  }
@@ -1088,7 +1066,7 @@ module Schemas
1088
1066
  end
1089
1067
 
1090
1068
  # @override
1091
- def to_h
1069
+ def as_json(_opts={})
1092
1070
  {
1093
1071
  'update_response_id' => @update_response_id
1094
1072
  }
@@ -1159,7 +1137,7 @@ module Schemas
1159
1137
  end
1160
1138
 
1161
1139
  # @override
1162
- def to_h
1140
+ def as_json(_opts={})
1163
1141
  {
1164
1142
  'id' => @id,
1165
1143
  'wibble_id' => @wibble_id,
@@ -1222,7 +1200,7 @@ module Schemas
1222
1200
  end
1223
1201
 
1224
1202
  # @override
1225
- def to_h
1203
+ def as_json(_opts={})
1226
1204
  {
1227
1205
  'id' => @id,
1228
1206
  'widget_id' => @widget_id,
@@ -1281,7 +1259,7 @@ module Schemas
1281
1259
  end
1282
1260
 
1283
1261
  # @override
1284
- def to_h
1262
+ def as_json(_opts={})
1285
1263
  {
1286
1264
  'id' => @id,
1287
1265
  'widget_id' => @widget_id,
@@ -1305,21 +1283,10 @@ module Schemas
1305
1283
  # @return ['sym5', 'sym6']
1306
1284
  attr_accessor :yet_another_enum
1307
1285
 
1308
- # :nodoc:
1309
- def initialize(yet_another_enum)
1310
- super
1311
- self.yet_another_enum = yet_another_enum
1312
- end
1313
-
1314
1286
  # @override
1315
1287
  def symbols
1316
1288
  %w(sym5 sym6)
1317
1289
  end
1318
-
1319
- # @override
1320
- def to_h
1321
- @yet_another_enum
1322
- end
1323
1290
  end
1324
1291
  end
1325
1292