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
@@ -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
  'response_id' => @response_id
34
34
  }
@@ -71,7 +71,7 @@ module Schemas
71
71
  end
72
72
 
73
73
  # @override
74
- def to_h
74
+ def as_json(_opts={})
75
75
  {
76
76
  'a_record_field' => @a_record_field
77
77
  }
@@ -83,21 +83,10 @@ module Schemas
83
83
  # @return ['sym1', 'sym2']
84
84
  attr_accessor :an_enum
85
85
 
86
- # :nodoc:
87
- def initialize(an_enum)
88
- super
89
- self.an_enum = an_enum
90
- end
91
-
92
86
  # @override
93
87
  def symbols
94
88
  %w(sym1 sym2)
95
89
  end
96
-
97
- # @override
98
- def to_h
99
- @an_enum
100
- end
101
90
  end
102
91
 
103
92
 
@@ -179,7 +168,7 @@ module Schemas
179
168
  end
180
169
 
181
170
  # @override
182
- def to_h
171
+ def as_json(_opts={})
183
172
  {
184
173
  'a_string' => @a_string,
185
174
  'a_int' => @a_int,
@@ -187,12 +176,12 @@ module Schemas
187
176
  'a_float' => @a_float,
188
177
  'a_double' => @a_double,
189
178
  'an_optional_int' => @an_optional_int,
190
- 'an_enum' => @an_enum&.to_h,
179
+ 'an_enum' => @an_enum&.as_json,
191
180
  'an_array' => @an_array,
192
181
  'a_map' => @a_map,
193
182
  'timestamp' => @timestamp,
194
183
  'message_id' => @message_id,
195
- 'a_record' => @a_record&.to_h
184
+ 'a_record' => @a_record&.as_json
196
185
  }
197
186
  end
198
187
  end
@@ -229,7 +218,7 @@ module Schemas
229
218
  end
230
219
 
231
220
  # @override
232
- def to_h
221
+ def as_json(_opts={})
233
222
  {
234
223
  'response_id' => @response_id
235
224
  }
@@ -284,7 +273,7 @@ module Schemas
284
273
  end
285
274
 
286
275
  # @override
287
- def to_h
276
+ def as_json(_opts={})
288
277
  {
289
278
  'some_int' => @some_int,
290
279
  'some_float' => @some_float,
@@ -345,13 +334,13 @@ module Schemas
345
334
  end
346
335
 
347
336
  # @override
348
- def to_h
337
+ def as_json(_opts={})
349
338
  {
350
339
  'test_id' => @test_id,
351
340
  'test_float' => @test_float,
352
341
  'test_array' => @test_array,
353
- 'some_nested_record' => @some_nested_record&.to_h,
354
- 'some_optional_record' => @some_optional_record&.to_h
342
+ 'some_nested_record' => @some_nested_record&.as_json,
343
+ 'some_optional_record' => @some_optional_record&.as_json
355
344
  }
356
345
  end
357
346
  end
@@ -404,11 +393,11 @@ module Schemas
404
393
  end
405
394
 
406
395
  # @override
407
- def to_h
396
+ def as_json(_opts={})
408
397
  {
409
398
  'test_id' => @test_id,
410
399
  'some_int' => @some_int,
411
- 'payload_key' => @payload_key&.to_h
400
+ 'payload_key' => @payload_key&.as_json
412
401
  }
413
402
  end
414
403
  end
@@ -449,7 +438,7 @@ module Schemas
449
438
  end
450
439
 
451
440
  # @override
452
- def to_h
441
+ def as_json(_opts={})
453
442
  {
454
443
  'part_one' => @part_one,
455
444
  'part_two' => @part_two
@@ -489,7 +478,7 @@ module Schemas
489
478
  end
490
479
 
491
480
  # @override
492
- def to_h
481
+ def as_json(_opts={})
493
482
  {
494
483
  'id' => @id
495
484
  }
@@ -528,7 +517,7 @@ module Schemas
528
517
  end
529
518
 
530
519
  # @override
531
- def to_h
520
+ def as_json(_opts={})
532
521
  {
533
522
  'test_id' => @test_id
534
523
  }
@@ -571,7 +560,7 @@ module Schemas
571
560
  end
572
561
 
573
562
  # @override
574
- def to_h
563
+ def as_json(_opts={})
575
564
  {
576
565
  'test_id' => @test_id,
577
566
  'some_bool' => @some_bool
@@ -615,7 +604,7 @@ module Schemas
615
604
  end
616
605
 
617
606
  # @override
618
- def to_h
607
+ def as_json(_opts={})
619
608
  {
620
609
  'property' => @property
621
610
  }
@@ -652,9 +641,9 @@ module Schemas
652
641
  end
653
642
 
654
643
  # @override
655
- def to_h
644
+ def as_json(_opts={})
656
645
  {
657
- 'properties' => @properties.transform_values { |v| v&.to_h }
646
+ 'properties' => @properties.transform_values { |v| v&.as_json }
658
647
  }
659
648
  end
660
649
  end
@@ -695,7 +684,7 @@ module Schemas
695
684
  end
696
685
 
697
686
  # @override
698
- def to_h
687
+ def as_json(_opts={})
699
688
  {
700
689
  'a_record_field' => @a_record_field
701
690
  }
@@ -707,21 +696,10 @@ module Schemas
707
696
  # @return ['sym1', 'sym2']
708
697
  attr_accessor :an_enum
709
698
 
710
- # :nodoc:
711
- def initialize(an_enum)
712
- super
713
- self.an_enum = an_enum
714
- end
715
-
716
699
  # @override
717
700
  def symbols
718
701
  %w(sym1 sym2)
719
702
  end
720
-
721
- # @override
722
- def to_h
723
- @an_enum
724
- end
725
703
  end
726
704
 
727
705
  # Autogenerated Schema for Enum at com.my-namespace.AnotherEnum
@@ -729,21 +707,10 @@ module Schemas
729
707
  # @return ['sym3', 'sym4']
730
708
  attr_accessor :another_enum
731
709
 
732
- # :nodoc:
733
- def initialize(another_enum)
734
- super
735
- self.another_enum = another_enum
736
- end
737
-
738
710
  # @override
739
711
  def symbols
740
712
  %w(sym3 sym4)
741
713
  end
742
-
743
- # @override
744
- def to_h
745
- @another_enum
746
- end
747
714
  end
748
715
 
749
716
  # Autogenerated Schema for Enum at com.my-namespace.YetAnotherEnum
@@ -751,21 +718,10 @@ module Schemas
751
718
  # @return ['sym5', 'sym6']
752
719
  attr_accessor :yet_another_enum
753
720
 
754
- # :nodoc:
755
- def initialize(yet_another_enum)
756
- super
757
- self.yet_another_enum = yet_another_enum
758
- end
759
-
760
721
  # @override
761
722
  def symbols
762
723
  %w(sym5 sym6)
763
724
  end
764
-
765
- # @override
766
- def to_h
767
- @yet_another_enum
768
- end
769
725
  end
770
726
 
771
727
 
@@ -882,7 +838,7 @@ module Schemas
882
838
  end
883
839
 
884
840
  # @override
885
- def to_h
841
+ def as_json(_opts={})
886
842
  {
887
843
  'test_id' => @test_id,
888
844
  'test_float' => @test_float,
@@ -890,13 +846,13 @@ module Schemas
890
846
  'test_int_array' => @test_int_array,
891
847
  'test_optional_int' => @test_optional_int,
892
848
  'some_integer_map' => @some_integer_map,
893
- 'some_record' => @some_record&.to_h,
894
- 'some_optional_record' => @some_optional_record&.to_h,
895
- 'some_record_array' => @some_record_array.map { |v| v&.to_h },
896
- 'some_record_map' => @some_record_map.transform_values { |v| v&.to_h },
897
- 'some_enum_array' => @some_enum_array.map { |v| v&.to_h },
898
- 'some_optional_enum' => @some_optional_enum&.to_h,
899
- 'some_enum_with_default' => @some_enum_with_default&.to_h
849
+ 'some_record' => @some_record&.as_json,
850
+ 'some_optional_record' => @some_optional_record&.as_json,
851
+ 'some_record_array' => @some_record_array.map { |v| v&.as_json },
852
+ 'some_record_map' => @some_record_map.transform_values { |v| v&.as_json },
853
+ 'some_enum_array' => @some_enum_array.map { |v| v&.as_json },
854
+ 'some_optional_enum' => @some_optional_enum&.as_json,
855
+ 'some_enum_with_default' => @some_enum_with_default&.as_json
900
856
  }
901
857
  end
902
858
  end
@@ -949,7 +905,7 @@ module Schemas
949
905
  end
950
906
 
951
907
  # @override
952
- def to_h
908
+ def as_json(_opts={})
953
909
  {
954
910
  'test_id' => @test_id,
955
911
  'updated_at' => @updated_at,
@@ -1004,7 +960,7 @@ module Schemas
1004
960
  end
1005
961
 
1006
962
  # @override
1007
- def to_h
963
+ def as_json(_opts={})
1008
964
  {
1009
965
  'test_id' => @test_id,
1010
966
  'some_int' => @some_int,
@@ -1062,7 +1018,7 @@ module Schemas
1062
1018
  end
1063
1019
 
1064
1020
  # @override
1065
- def to_h
1021
+ def as_json(_opts={})
1066
1022
  {
1067
1023
  'id' => @id,
1068
1024
  'test_id' => @test_id,
@@ -1105,7 +1061,7 @@ module Schemas
1105
1061
  end
1106
1062
 
1107
1063
  # @override
1108
- def to_h
1064
+ def as_json(_opts={})
1109
1065
  {
1110
1066
  'update_request_id' => @update_request_id
1111
1067
  }
@@ -1144,7 +1100,7 @@ module Schemas
1144
1100
  end
1145
1101
 
1146
1102
  # @override
1147
- def to_h
1103
+ def as_json(_opts={})
1148
1104
  {
1149
1105
  'update_response_id' => @update_response_id
1150
1106
  }
@@ -1215,7 +1171,7 @@ module Schemas
1215
1171
  end
1216
1172
 
1217
1173
  # @override
1218
- def to_h
1174
+ def as_json(_opts={})
1219
1175
  {
1220
1176
  'id' => @id,
1221
1177
  'wibble_id' => @wibble_id,
@@ -1278,7 +1234,7 @@ module Schemas
1278
1234
  end
1279
1235
 
1280
1236
  # @override
1281
- def to_h
1237
+ def as_json(_opts={})
1282
1238
  {
1283
1239
  'id' => @id,
1284
1240
  'widget_id' => @widget_id,
@@ -1337,7 +1293,7 @@ module Schemas
1337
1293
  end
1338
1294
 
1339
1295
  # @override
1340
- def to_h
1296
+ def as_json(_opts={})
1341
1297
  {
1342
1298
  'id' => @id,
1343
1299
  'widget_id' => @widget_id,
@@ -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