deimos-ruby 2.6.0.pre.beta1 → 2.6.0

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 (88) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +8 -2
  3. data/README.md +45 -20
  4. data/deimos-ruby.gemspec +0 -1
  5. data/docs/CONFIGURATION.md +5 -11
  6. data/lib/deimos/active_record_consume/batch_consumption.rb +128 -31
  7. data/lib/deimos/active_record_consume/batch_record.rb +3 -0
  8. data/lib/deimos/active_record_consume/message_consumption.rb +2 -2
  9. data/lib/deimos/active_record_consumer.rb +6 -1
  10. data/lib/deimos/active_record_producer.rb +1 -1
  11. data/lib/deimos/config/configuration.rb +11 -34
  12. data/lib/deimos/exceptions.rb +17 -0
  13. data/lib/deimos/ext/consumer_route.rb +3 -1
  14. data/lib/deimos/ext/producer_middleware.rb +2 -2
  15. data/lib/deimos/logging.rb +0 -9
  16. data/lib/deimos/producer.rb +5 -5
  17. data/lib/deimos/schema_backends/avro_base.rb +36 -7
  18. data/lib/deimos/schema_class/base.rb +62 -0
  19. data/lib/deimos/schema_class/enum.rb +49 -0
  20. data/lib/deimos/schema_class/record.rb +100 -0
  21. data/lib/deimos/transcoder.rb +6 -6
  22. data/lib/deimos/utils/deadlock_retry.rb +16 -2
  23. data/lib/deimos/utils/schema_class.rb +47 -14
  24. data/lib/deimos/version.rb +1 -1
  25. data/lib/deimos.rb +4 -3
  26. data/lib/generators/deimos/schema_class/templates/schema_class.rb.tt +8 -0
  27. data/lib/generators/deimos/schema_class/templates/schema_enum.rb.tt +13 -0
  28. data/lib/generators/deimos/schema_class/templates/schema_record.rb.tt +102 -0
  29. data/lib/generators/deimos/schema_class_generator.rb +369 -0
  30. data/lib/tasks/deimos.rake +4 -16
  31. data/regenerate_test_schema_classes.rb +3 -12
  32. data/spec/active_record_batch_consumer_association_spec.rb +1 -1
  33. data/spec/active_record_batch_consumer_spec.rb +286 -1
  34. data/spec/active_record_consume/batch_consumption_spec.rb +1 -1
  35. data/spec/active_record_consumer_spec.rb +3 -3
  36. data/spec/active_record_producer_spec.rb +1 -1
  37. data/spec/batch_consumer_spec.rb +2 -2
  38. data/spec/consumer_spec.rb +5 -5
  39. data/spec/generators/schema_class/my_schema_spec.rb +16 -0
  40. data/spec/generators/schema_class/my_schema_with_circular_reference_spec.rb +98 -0
  41. data/spec/generators/schema_class/my_schema_with_complex_types_spec.rb +237 -0
  42. data/spec/generators/schema_class_generator_spec.rb +283 -0
  43. data/spec/schemas/my_namespace/generated.rb +4 -4
  44. data/spec/schemas/my_namespace/my_long_namespace_schema.rb +2 -2
  45. data/spec/schemas/my_namespace/my_nested_schema.rb +3 -3
  46. data/spec/schemas/my_namespace/my_schema.rb +2 -2
  47. data/spec/schemas/my_namespace/my_schema_compound_key.rb +2 -2
  48. data/spec/schemas/my_namespace/my_schema_id_key.rb +2 -2
  49. data/spec/schemas/my_namespace/my_schema_key.rb +2 -2
  50. data/spec/schemas/my_namespace/my_schema_with_boolean.rb +2 -2
  51. data/spec/schemas/my_namespace/my_schema_with_circular_reference.rb +3 -3
  52. data/spec/schemas/my_namespace/my_schema_with_complex_type.rb +6 -6
  53. data/spec/schemas/my_namespace/my_schema_with_date_time.rb +2 -2
  54. data/spec/schemas/my_namespace/my_schema_with_id.rb +2 -2
  55. data/spec/schemas/my_namespace/my_schema_with_title.rb +2 -2
  56. data/spec/schemas/my_namespace/my_schema_with_union_type.rb +6 -6
  57. data/spec/schemas/my_namespace/my_schema_with_unique_id.rb +2 -2
  58. data/spec/schemas/my_namespace/my_updated_schema.rb +1 -1
  59. data/spec/schemas/my_namespace/request/create_topic.rb +2 -2
  60. data/spec/schemas/my_namespace/request/index.rb +2 -2
  61. data/spec/schemas/my_namespace/request/update_request.rb +2 -2
  62. data/spec/schemas/my_namespace/response/create_topic.rb +2 -2
  63. data/spec/schemas/my_namespace/response/index.rb +2 -2
  64. data/spec/schemas/my_namespace/response/update_response.rb +2 -2
  65. data/spec/schemas/my_namespace/wibble.rb +2 -2
  66. data/spec/schemas/my_namespace/widget.rb +2 -2
  67. data/spec/schemas/my_namespace/widget_the_second.rb +2 -2
  68. data/spec/schemas/my_namespace/widget_the_third.rb +2 -2
  69. data/spec/snapshots/consumers-no-nest.snap +1740 -0
  70. data/spec/snapshots/consumers.snap +1720 -0
  71. data/spec/snapshots/consumers_and_producers-no-nest.snap +1740 -0
  72. data/spec/snapshots/consumers_and_producers.snap +1720 -0
  73. data/spec/snapshots/consumers_circular-no-nest.snap +1740 -0
  74. data/spec/snapshots/consumers_circular.snap +1720 -0
  75. data/spec/snapshots/consumers_complex_types-no-nest.snap +1740 -0
  76. data/spec/snapshots/consumers_complex_types.snap +1720 -0
  77. data/spec/snapshots/consumers_nested-no-nest.snap +1740 -0
  78. data/spec/snapshots/consumers_nested.snap +1720 -0
  79. data/spec/snapshots/namespace_folders.snap +1800 -0
  80. data/spec/snapshots/namespace_map.snap +1800 -0
  81. data/spec/snapshots/producers_with_key-no-nest.snap +1740 -0
  82. data/spec/snapshots/producers_with_key.snap +1720 -0
  83. data/spec/spec_helper.rb +2 -2
  84. data/spec/utils/db_poller_spec.rb +1 -1
  85. data/spec/utils/deadlock_retry_spec.rb +57 -0
  86. metadata +27 -18
  87. data/lib/deimos/schema_class.rb +0 -72
  88. data/spec/schema_class_spec.rb +0 -65
@@ -1,14 +1,14 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # This file is autogenerated by AvroGen, Do NOT modify
3
+ # This file is autogenerated by Deimos, Do NOT modify
4
4
  module Schemas; module MyNamespace
5
5
  ### Primary Schema Class ###
6
6
  # Autogenerated Schema for Record at com.my-namespace.MySchemaWithComplexTypes
7
- class MySchemaWithComplexType < AvroGen::SchemaClass::Record
7
+ class MySchemaWithComplexType < Deimos::SchemaClass::Record
8
8
 
9
9
  ### Secondary Schema Classes ###
10
10
  # Autogenerated Schema for Record at com.my-namespace.ARecord
11
- class ARecord < AvroGen::SchemaClass::Record
11
+ class ARecord < Deimos::SchemaClass::Record
12
12
 
13
13
  ### Attribute Accessors ###
14
14
  # @return [String]
@@ -40,7 +40,7 @@ module Schemas; module MyNamespace
40
40
  end
41
41
 
42
42
  # Autogenerated Schema for Enum at com.my-namespace.AnEnum
43
- class AnEnum < AvroGen::SchemaClass::Enum
43
+ class AnEnum < Deimos::SchemaClass::Enum
44
44
  # @override
45
45
  def symbols
46
46
  %w(sym1 sym2)
@@ -57,7 +57,7 @@ module Schemas; module MyNamespace
57
57
  end
58
58
 
59
59
  # Autogenerated Schema for Enum at com.my-namespace.AnotherEnum
60
- class AnotherEnum < AvroGen::SchemaClass::Enum
60
+ class AnotherEnum < Deimos::SchemaClass::Enum
61
61
  # @override
62
62
  def symbols
63
63
  %w(sym3 sym4)
@@ -74,7 +74,7 @@ module Schemas; module MyNamespace
74
74
  end
75
75
 
76
76
  # Autogenerated Schema for Enum at com.my-namespace.YetAnotherEnum
77
- class YetAnotherEnum < AvroGen::SchemaClass::Enum
77
+ class YetAnotherEnum < Deimos::SchemaClass::Enum
78
78
  # @override
79
79
  def symbols
80
80
  %w(sym5 sym6)
@@ -1,10 +1,10 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # This file is autogenerated by AvroGen, Do NOT modify
3
+ # This file is autogenerated by Deimos, Do NOT modify
4
4
  module Schemas; module MyNamespace
5
5
  ### Primary Schema Class ###
6
6
  # Autogenerated Schema for Record at com.my-namespace.MySchemaWithDateTimes
7
- class MySchemaWithDateTime < AvroGen::SchemaClass::Record
7
+ class MySchemaWithDateTime < Deimos::SchemaClass::Record
8
8
 
9
9
  ### Attribute Accessors ###
10
10
  # @return [String]
@@ -1,10 +1,10 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # This file is autogenerated by AvroGen, Do NOT modify
3
+ # This file is autogenerated by Deimos, Do NOT modify
4
4
  module Schemas; module MyNamespace
5
5
  ### Primary Schema Class ###
6
6
  # Autogenerated Schema for Record at com.my-namespace.MySchemaWithId
7
- class MySchemaWithId < AvroGen::SchemaClass::Record
7
+ class MySchemaWithId < Deimos::SchemaClass::Record
8
8
 
9
9
  ### Attribute Accessors ###
10
10
  # @return [String]
@@ -1,10 +1,10 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # This file is autogenerated by AvroGen, Do NOT modify
3
+ # This file is autogenerated by Deimos, Do NOT modify
4
4
  module Schemas; module MyNamespace
5
5
  ### Primary Schema Class ###
6
6
  # Autogenerated Schema for Record at com.my-namespace.MySchemaWithTitle
7
- class MySchemaWithTitle < AvroGen::SchemaClass::Record
7
+ class MySchemaWithTitle < Deimos::SchemaClass::Record
8
8
 
9
9
  ### Attribute Accessors ###
10
10
  # @return [String]
@@ -1,14 +1,14 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # This file is autogenerated by AvroGen, Do NOT modify
3
+ # This file is autogenerated by Deimos, Do NOT modify
4
4
  module Schemas; module MyNamespace
5
5
  ### Primary Schema Class ###
6
6
  # Autogenerated Schema for Record at com.my-namespace.MySchemaWithUnionType
7
- class MySchemaWithUnionType < AvroGen::SchemaClass::Record
7
+ class MySchemaWithUnionType < Deimos::SchemaClass::Record
8
8
 
9
9
  ### Secondary Schema Classes ###
10
10
  # Autogenerated Schema for Record at com.flipp.content.Record1
11
- class Record1 < AvroGen::SchemaClass::Record
11
+ class Record1 < Deimos::SchemaClass::Record
12
12
 
13
13
  ### Attribute Accessors ###
14
14
  # @return [Hash<String, Integer>]
@@ -45,7 +45,7 @@ module Schemas; module MyNamespace
45
45
  end
46
46
 
47
47
  # Autogenerated Schema for Record at com.flipp.content.Record2
48
- class Record2 < AvroGen::SchemaClass::Record
48
+ class Record2 < Deimos::SchemaClass::Record
49
49
 
50
50
  ### Attribute Accessors ###
51
51
  # @return [String]
@@ -77,7 +77,7 @@ module Schemas; module MyNamespace
77
77
  end
78
78
 
79
79
  # Autogenerated Schema for Record at com.flipp.content.Record3
80
- class Record3 < AvroGen::SchemaClass::Record
80
+ class Record3 < Deimos::SchemaClass::Record
81
81
 
82
82
  ### Attribute Accessors ###
83
83
  # @return [Float]
@@ -109,7 +109,7 @@ module Schemas; module MyNamespace
109
109
  end
110
110
 
111
111
  # Autogenerated Schema for Record at com.flipp.content.Record4
112
- class Record4 < AvroGen::SchemaClass::Record
112
+ class Record4 < Deimos::SchemaClass::Record
113
113
 
114
114
  ### Attribute Accessors ###
115
115
  # @return [Integer]
@@ -1,10 +1,10 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # This file is autogenerated by AvroGen, Do NOT modify
3
+ # This file is autogenerated by Deimos, Do NOT modify
4
4
  module Schemas; module MyNamespace
5
5
  ### Primary Schema Class ###
6
6
  # Autogenerated Schema for Record at com.my-namespace.MySchemaWithUniqueId
7
- class MySchemaWithUniqueId < AvroGen::SchemaClass::Record
7
+ class MySchemaWithUniqueId < Deimos::SchemaClass::Record
8
8
 
9
9
  ### Attribute Accessors ###
10
10
  # @return [Integer]
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # This file is autogenerated by AvroGen, Do NOT modify
3
+ # This file is autogenerated by Deimos, Do NOT modify
4
4
  module Schemas; module Com; module MyNamespace
5
5
  ### Primary Schema Class ###
6
6
  # Autogenerated Schema for Record at com.my-namespace.MySchema
@@ -1,10 +1,10 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # This file is autogenerated by AvroGen, Do NOT modify
3
+ # This file is autogenerated by Deimos, Do NOT modify
4
4
  module Schemas; module MyNamespace; module Request
5
5
  ### Primary Schema Class ###
6
6
  # Autogenerated Schema for Record at com.my-namespace.request.CreateTopic
7
- class CreateTopic < AvroGen::SchemaClass::Record
7
+ class CreateTopic < Deimos::SchemaClass::Record
8
8
 
9
9
  ### Attribute Accessors ###
10
10
  # @return [String]
@@ -1,10 +1,10 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # This file is autogenerated by AvroGen, Do NOT modify
3
+ # This file is autogenerated by Deimos, Do NOT modify
4
4
  module Schemas; module MyNamespace; module Request
5
5
  ### Primary Schema Class ###
6
6
  # Autogenerated Schema for Record at com.my-namespace.request.Index
7
- class Index < AvroGen::SchemaClass::Record
7
+ class Index < Deimos::SchemaClass::Record
8
8
 
9
9
  ### Attribute Accessors ###
10
10
  # @return [String]
@@ -1,10 +1,10 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # This file is autogenerated by AvroGen, Do NOT modify
3
+ # This file is autogenerated by Deimos, Do NOT modify
4
4
  module Schemas; module MyNamespace; module Request
5
5
  ### Primary Schema Class ###
6
6
  # Autogenerated Schema for Record at com.my-namespace.request.UpdateRequest
7
- class UpdateRequest < AvroGen::SchemaClass::Record
7
+ class UpdateRequest < Deimos::SchemaClass::Record
8
8
 
9
9
  ### Attribute Accessors ###
10
10
  # @return [String]
@@ -1,10 +1,10 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # This file is autogenerated by AvroGen, Do NOT modify
3
+ # This file is autogenerated by Deimos, Do NOT modify
4
4
  module Schemas; module MyNamespace; module Response
5
5
  ### Primary Schema Class ###
6
6
  # Autogenerated Schema for Record at com.my-namespace.response.CreateTopic
7
- class CreateTopic < AvroGen::SchemaClass::Record
7
+ class CreateTopic < Deimos::SchemaClass::Record
8
8
 
9
9
  ### Attribute Accessors ###
10
10
  # @return [String]
@@ -1,10 +1,10 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # This file is autogenerated by AvroGen, Do NOT modify
3
+ # This file is autogenerated by Deimos, Do NOT modify
4
4
  module Schemas; module MyNamespace; module Response
5
5
  ### Primary Schema Class ###
6
6
  # Autogenerated Schema for Record at com.my-namespace.response.Index
7
- class Index < AvroGen::SchemaClass::Record
7
+ class Index < Deimos::SchemaClass::Record
8
8
 
9
9
  ### Attribute Accessors ###
10
10
  # @return [String]
@@ -1,10 +1,10 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # This file is autogenerated by AvroGen, Do NOT modify
3
+ # This file is autogenerated by Deimos, Do NOT modify
4
4
  module Schemas; module MyNamespace; module Response
5
5
  ### Primary Schema Class ###
6
6
  # Autogenerated Schema for Record at com.my-namespace.response.UpdateResponse
7
- class UpdateResponse < AvroGen::SchemaClass::Record
7
+ class UpdateResponse < Deimos::SchemaClass::Record
8
8
 
9
9
  ### Attribute Accessors ###
10
10
  # @return [String]
@@ -1,10 +1,10 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # This file is autogenerated by AvroGen, Do NOT modify
3
+ # This file is autogenerated by Deimos, Do NOT modify
4
4
  module Schemas; module MyNamespace
5
5
  ### Primary Schema Class ###
6
6
  # Autogenerated Schema for Record at com.my-namespace.Wibble
7
- class Wibble < AvroGen::SchemaClass::Record
7
+ class Wibble < Deimos::SchemaClass::Record
8
8
 
9
9
  ### Attribute Accessors ###
10
10
  # @return [Integer]
@@ -1,10 +1,10 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # This file is autogenerated by AvroGen, Do NOT modify
3
+ # This file is autogenerated by Deimos, Do NOT modify
4
4
  module Schemas; module MyNamespace
5
5
  ### Primary Schema Class ###
6
6
  # Autogenerated Schema for Record at com.my-namespace.Widget
7
- class Widget < AvroGen::SchemaClass::Record
7
+ class Widget < Deimos::SchemaClass::Record
8
8
 
9
9
  ### Attribute Accessors ###
10
10
  # @return [Integer]
@@ -1,10 +1,10 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # This file is autogenerated by AvroGen, Do NOT modify
3
+ # This file is autogenerated by Deimos, Do NOT modify
4
4
  module Schemas; module MyNamespace
5
5
  ### Primary Schema Class ###
6
6
  # Autogenerated Schema for Record at com.my-namespace.WidgetTheSecond
7
- class WidgetTheSecond < AvroGen::SchemaClass::Record
7
+ class WidgetTheSecond < Deimos::SchemaClass::Record
8
8
 
9
9
  ### Attribute Accessors ###
10
10
  # @return [Integer]
@@ -1,10 +1,10 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # This file is autogenerated by AvroGen, Do NOT modify
3
+ # This file is autogenerated by Deimos, Do NOT modify
4
4
  module Schemas; module MyNamespace
5
5
  ### Primary Schema Class ###
6
6
  # Autogenerated Schema for Record at com.my-namespace.WidgetTheThird
7
- class WidgetTheThird < AvroGen::SchemaClass::Record
7
+ class WidgetTheThird < Deimos::SchemaClass::Record
8
8
 
9
9
  ### Attribute Accessors ###
10
10
  # @return [String]