deimos-ruby 1.15.1 → 1.16.2

Sign up to get free protection for your applications and to get access to all the features.
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