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
@@ -392,7 +381,7 @@ module Schemas
392
381
  end
393
382
 
394
383
  # @override
395
- def to_h
384
+ def as_json(_opts={})
396
385
  {
397
386
  'test_id' => @test_id,
398
387
  'some_int' => @some_int
@@ -436,7 +425,7 @@ module Schemas
436
425
  end
437
426
 
438
427
  # @override
439
- def to_h
428
+ def as_json(_opts={})
440
429
  {
441
430
  'part_one' => @part_one,
442
431
  'part_two' => @part_two
@@ -476,7 +465,7 @@ module Schemas
476
465
  end
477
466
 
478
467
  # @override
479
- def to_h
468
+ def as_json(_opts={})
480
469
  {
481
470
  'id' => @id
482
471
  }
@@ -515,7 +504,7 @@ module Schemas
515
504
  end
516
505
 
517
506
  # @override
518
- def to_h
507
+ def as_json(_opts={})
519
508
  {
520
509
  'test_id' => @test_id
521
510
  }
@@ -558,7 +547,7 @@ module Schemas
558
547
  end
559
548
 
560
549
  # @override
561
- def to_h
550
+ def as_json(_opts={})
562
551
  {
563
552
  'test_id' => @test_id,
564
553
  'some_bool' => @some_bool
@@ -602,7 +591,7 @@ module Schemas
602
591
  end
603
592
 
604
593
  # @override
605
- def to_h
594
+ def as_json(_opts={})
606
595
  {
607
596
  'property' => @property
608
597
  }
@@ -639,9 +628,9 @@ module Schemas
639
628
  end
640
629
 
641
630
  # @override
642
- def to_h
631
+ def as_json(_opts={})
643
632
  {
644
- 'properties' => @properties.transform_values { |v| v&.to_h }
633
+ 'properties' => @properties.transform_values { |v| v&.as_json }
645
634
  }
646
635
  end
647
636
  end
@@ -682,7 +671,7 @@ module Schemas
682
671
  end
683
672
 
684
673
  # @override
685
- def to_h
674
+ def as_json(_opts={})
686
675
  {
687
676
  'a_record_field' => @a_record_field
688
677
  }
@@ -694,21 +683,10 @@ module Schemas
694
683
  # @return ['sym1', 'sym2']
695
684
  attr_accessor :an_enum
696
685
 
697
- # :nodoc:
698
- def initialize(an_enum)
699
- super
700
- self.an_enum = an_enum
701
- end
702
-
703
686
  # @override
704
687
  def symbols
705
688
  %w(sym1 sym2)
706
689
  end
707
-
708
- # @override
709
- def to_h
710
- @an_enum
711
- end
712
690
  end
713
691
 
714
692
  # Autogenerated Schema for Enum at com.my-namespace.AnotherEnum
@@ -716,21 +694,10 @@ module Schemas
716
694
  # @return ['sym3', 'sym4']
717
695
  attr_accessor :another_enum
718
696
 
719
- # :nodoc:
720
- def initialize(another_enum)
721
- super
722
- self.another_enum = another_enum
723
- end
724
-
725
697
  # @override
726
698
  def symbols
727
699
  %w(sym3 sym4)
728
700
  end
729
-
730
- # @override
731
- def to_h
732
- @another_enum
733
- end
734
701
  end
735
702
 
736
703
  # Autogenerated Schema for Enum at com.my-namespace.YetAnotherEnum
@@ -738,21 +705,10 @@ module Schemas
738
705
  # @return ['sym5', 'sym6']
739
706
  attr_accessor :yet_another_enum
740
707
 
741
- # :nodoc:
742
- def initialize(yet_another_enum)
743
- super
744
- self.yet_another_enum = yet_another_enum
745
- end
746
-
747
708
  # @override
748
709
  def symbols
749
710
  %w(sym5 sym6)
750
711
  end
751
-
752
- # @override
753
- def to_h
754
- @yet_another_enum
755
- end
756
712
  end
757
713
 
758
714
 
@@ -869,7 +825,7 @@ module Schemas
869
825
  end
870
826
 
871
827
  # @override
872
- def to_h
828
+ def as_json(_opts={})
873
829
  {
874
830
  'test_id' => @test_id,
875
831
  'test_float' => @test_float,
@@ -877,13 +833,13 @@ module Schemas
877
833
  'test_int_array' => @test_int_array,
878
834
  'test_optional_int' => @test_optional_int,
879
835
  'some_integer_map' => @some_integer_map,
880
- 'some_record' => @some_record&.to_h,
881
- 'some_optional_record' => @some_optional_record&.to_h,
882
- 'some_record_array' => @some_record_array.map { |v| v&.to_h },
883
- 'some_record_map' => @some_record_map.transform_values { |v| v&.to_h },
884
- 'some_enum_array' => @some_enum_array.map { |v| v&.to_h },
885
- 'some_optional_enum' => @some_optional_enum&.to_h,
886
- 'some_enum_with_default' => @some_enum_with_default&.to_h
836
+ 'some_record' => @some_record&.as_json,
837
+ 'some_optional_record' => @some_optional_record&.as_json,
838
+ 'some_record_array' => @some_record_array.map { |v| v&.as_json },
839
+ 'some_record_map' => @some_record_map.transform_values { |v| v&.as_json },
840
+ 'some_enum_array' => @some_enum_array.map { |v| v&.as_json },
841
+ 'some_optional_enum' => @some_optional_enum&.as_json,
842
+ 'some_enum_with_default' => @some_enum_with_default&.as_json
887
843
  }
888
844
  end
889
845
  end
@@ -936,7 +892,7 @@ module Schemas
936
892
  end
937
893
 
938
894
  # @override
939
- def to_h
895
+ def as_json(_opts={})
940
896
  {
941
897
  'test_id' => @test_id,
942
898
  'updated_at' => @updated_at,
@@ -991,7 +947,7 @@ module Schemas
991
947
  end
992
948
 
993
949
  # @override
994
- def to_h
950
+ def as_json(_opts={})
995
951
  {
996
952
  'test_id' => @test_id,
997
953
  'some_int' => @some_int,
@@ -1049,7 +1005,7 @@ module Schemas
1049
1005
  end
1050
1006
 
1051
1007
  # @override
1052
- def to_h
1008
+ def as_json(_opts={})
1053
1009
  {
1054
1010
  'id' => @id,
1055
1011
  'test_id' => @test_id,
@@ -1092,7 +1048,7 @@ module Schemas
1092
1048
  end
1093
1049
 
1094
1050
  # @override
1095
- def to_h
1051
+ def as_json(_opts={})
1096
1052
  {
1097
1053
  'update_request_id' => @update_request_id
1098
1054
  }
@@ -1131,7 +1087,7 @@ module Schemas
1131
1087
  end
1132
1088
 
1133
1089
  # @override
1134
- def to_h
1090
+ def as_json(_opts={})
1135
1091
  {
1136
1092
  'update_response_id' => @update_response_id
1137
1093
  }
@@ -1202,7 +1158,7 @@ module Schemas
1202
1158
  end
1203
1159
 
1204
1160
  # @override
1205
- def to_h
1161
+ def as_json(_opts={})
1206
1162
  {
1207
1163
  'id' => @id,
1208
1164
  'wibble_id' => @wibble_id,
@@ -1265,7 +1221,7 @@ module Schemas
1265
1221
  end
1266
1222
 
1267
1223
  # @override
1268
- def to_h
1224
+ def as_json(_opts={})
1269
1225
  {
1270
1226
  'id' => @id,
1271
1227
  'widget_id' => @widget_id,
@@ -1324,7 +1280,7 @@ module Schemas
1324
1280
  end
1325
1281
 
1326
1282
  # @override
1327
- def to_h
1283
+ def as_json(_opts={})
1328
1284
  {
1329
1285
  'id' => @id,
1330
1286
  '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
@@ -454,11 +432,11 @@ module Schemas
454
432
  end
455
433
 
456
434
  # @override
457
- def to_h
435
+ def as_json(_opts={})
458
436
  {
459
437
  'test_id' => @test_id,
460
438
  'some_int' => @some_int,
461
- 'payload_key' => @payload_key&.to_h
439
+ 'payload_key' => @payload_key&.as_json
462
440
  }
463
441
  end
464
442
  end
@@ -499,7 +477,7 @@ module Schemas
499
477
  end
500
478
 
501
479
  # @override
502
- def to_h
480
+ def as_json(_opts={})
503
481
  {
504
482
  'part_one' => @part_one,
505
483
  'part_two' => @part_two
@@ -539,7 +517,7 @@ module Schemas
539
517
  end
540
518
 
541
519
  # @override
542
- def to_h
520
+ def as_json(_opts={})
543
521
  {
544
522
  'id' => @id
545
523
  }
@@ -578,7 +556,7 @@ module Schemas
578
556
  end
579
557
 
580
558
  # @override
581
- def to_h
559
+ def as_json(_opts={})
582
560
  {
583
561
  'test_id' => @test_id
584
562
  }
@@ -621,7 +599,7 @@ module Schemas
621
599
  end
622
600
 
623
601
  # @override
624
- def to_h
602
+ def as_json(_opts={})
625
603
  {
626
604
  'test_id' => @test_id,
627
605
  'some_bool' => @some_bool
@@ -669,9 +647,9 @@ module Schemas
669
647
  end
670
648
 
671
649
  # @override
672
- def to_h
650
+ def as_json(_opts={})
673
651
  {
674
- 'properties' => @properties.transform_values { |v| v&.to_h }
652
+ 'properties' => @properties.transform_values { |v| v&.as_json }
675
653
  }
676
654
  end
677
655
  end
@@ -800,7 +778,7 @@ module Schemas
800
778
  end
801
779
 
802
780
  # @override
803
- def to_h
781
+ def as_json(_opts={})
804
782
  {
805
783
  'test_id' => @test_id,
806
784
  'test_float' => @test_float,
@@ -808,13 +786,13 @@ module Schemas
808
786
  'test_int_array' => @test_int_array,
809
787
  'test_optional_int' => @test_optional_int,
810
788
  'some_integer_map' => @some_integer_map,
811
- 'some_record' => @some_record&.to_h,
812
- 'some_optional_record' => @some_optional_record&.to_h,
813
- 'some_record_array' => @some_record_array.map { |v| v&.to_h },
814
- 'some_record_map' => @some_record_map.transform_values { |v| v&.to_h },
815
- 'some_enum_array' => @some_enum_array.map { |v| v&.to_h },
816
- 'some_optional_enum' => @some_optional_enum&.to_h,
817
- 'some_enum_with_default' => @some_enum_with_default&.to_h
789
+ 'some_record' => @some_record&.as_json,
790
+ 'some_optional_record' => @some_optional_record&.as_json,
791
+ 'some_record_array' => @some_record_array.map { |v| v&.as_json },
792
+ 'some_record_map' => @some_record_map.transform_values { |v| v&.as_json },
793
+ 'some_enum_array' => @some_enum_array.map { |v| v&.as_json },
794
+ 'some_optional_enum' => @some_optional_enum&.as_json,
795
+ 'some_enum_with_default' => @some_enum_with_default&.as_json
818
796
  }
819
797
  end
820
798
  end
@@ -867,7 +845,7 @@ module Schemas
867
845
  end
868
846
 
869
847
  # @override
870
- def to_h
848
+ def as_json(_opts={})
871
849
  {
872
850
  'test_id' => @test_id,
873
851
  'updated_at' => @updated_at,
@@ -922,7 +900,7 @@ module Schemas
922
900
  end
923
901
 
924
902
  # @override
925
- def to_h
903
+ def as_json(_opts={})
926
904
  {
927
905
  'test_id' => @test_id,
928
906
  'some_int' => @some_int,
@@ -980,7 +958,7 @@ module Schemas
980
958
  end
981
959
 
982
960
  # @override
983
- def to_h
961
+ def as_json(_opts={})
984
962
  {
985
963
  'id' => @id,
986
964
  'test_id' => @test_id,
@@ -1023,7 +1001,7 @@ module Schemas
1023
1001
  end
1024
1002
 
1025
1003
  # @override
1026
- def to_h
1004
+ def as_json(_opts={})
1027
1005
  {
1028
1006
  'property' => @property
1029
1007
  }
@@ -1062,7 +1040,7 @@ module Schemas
1062
1040
  end
1063
1041
 
1064
1042
  # @override
1065
- def to_h
1043
+ def as_json(_opts={})
1066
1044
  {
1067
1045
  'update_request_id' => @update_request_id
1068
1046
  }
@@ -1101,7 +1079,7 @@ module Schemas
1101
1079
  end
1102
1080
 
1103
1081
  # @override
1104
- def to_h
1082
+ def as_json(_opts={})
1105
1083
  {
1106
1084
  'update_response_id' => @update_response_id
1107
1085
  }
@@ -1172,7 +1150,7 @@ module Schemas
1172
1150
  end
1173
1151
 
1174
1152
  # @override
1175
- def to_h
1153
+ def as_json(_opts={})
1176
1154
  {
1177
1155
  'id' => @id,
1178
1156
  'wibble_id' => @wibble_id,
@@ -1235,7 +1213,7 @@ module Schemas
1235
1213
  end
1236
1214
 
1237
1215
  # @override
1238
- def to_h
1216
+ def as_json(_opts={})
1239
1217
  {
1240
1218
  'id' => @id,
1241
1219
  'widget_id' => @widget_id,
@@ -1294,7 +1272,7 @@ module Schemas
1294
1272
  end
1295
1273
 
1296
1274
  # @override
1297
- def to_h
1275
+ def as_json(_opts={})
1298
1276
  {
1299
1277
  'id' => @id,
1300
1278
  'widget_id' => @widget_id,
@@ -1318,21 +1296,10 @@ module Schemas
1318
1296
  # @return ['sym5', 'sym6']
1319
1297
  attr_accessor :yet_another_enum
1320
1298
 
1321
- # :nodoc:
1322
- def initialize(yet_another_enum)
1323
- super
1324
- self.yet_another_enum = yet_another_enum
1325
- end
1326
-
1327
1299
  # @override
1328
1300
  def symbols
1329
1301
  %w(sym5 sym6)
1330
1302
  end
1331
-
1332
- # @override
1333
- def to_h
1334
- @yet_another_enum
1335
- end
1336
1303
  end
1337
1304
  end
1338
1305