deimos-ruby 1.16.1 → 1.16.4

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 (98) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +1 -0
  3. data/CHANGELOG.md +13 -0
  4. data/Gemfile +6 -0
  5. data/README.md +22 -0
  6. data/lib/deimos/active_record_consume/batch_consumption.rb +7 -2
  7. data/lib/deimos/active_record_consume/batch_slicer.rb +2 -0
  8. data/lib/deimos/active_record_consume/message_consumption.rb +8 -4
  9. data/lib/deimos/active_record_consumer.rb +7 -4
  10. data/lib/deimos/active_record_producer.rb +10 -0
  11. data/lib/deimos/backends/base.rb +4 -2
  12. data/lib/deimos/backends/kafka.rb +1 -0
  13. data/lib/deimos/backends/kafka_async.rb +1 -0
  14. data/lib/deimos/config/configuration.rb +4 -0
  15. data/lib/deimos/config/phobos_config.rb +2 -1
  16. data/lib/deimos/consume/batch_consumption.rb +8 -1
  17. data/lib/deimos/consume/message_consumption.rb +4 -1
  18. data/lib/deimos/instrumentation.rb +11 -4
  19. data/lib/deimos/kafka_message.rb +1 -0
  20. data/lib/deimos/kafka_source.rb +5 -0
  21. data/lib/deimos/kafka_topic_info.rb +4 -0
  22. data/lib/deimos/message.rb +19 -2
  23. data/lib/deimos/metrics/datadog.rb +2 -1
  24. data/lib/deimos/metrics/mock.rb +2 -2
  25. data/lib/deimos/metrics/provider.rb +6 -0
  26. data/lib/deimos/monkey_patches/phobos_cli.rb +1 -1
  27. data/lib/deimos/monkey_patches/phobos_producer.rb +1 -0
  28. data/lib/deimos/producer.rb +12 -6
  29. data/lib/deimos/schema_backends/base.rb +31 -17
  30. data/lib/deimos/schema_backends/mock.rb +2 -2
  31. data/lib/deimos/schema_class/base.rb +9 -5
  32. data/lib/deimos/schema_class/enum.rb +4 -2
  33. data/lib/deimos/schema_class/record.rb +12 -6
  34. data/lib/deimos/shared_config.rb +6 -2
  35. data/lib/deimos/test_helpers.rb +21 -4
  36. data/lib/deimos/tracing/datadog.rb +1 -1
  37. data/lib/deimos/tracing/mock.rb +4 -3
  38. data/lib/deimos/tracing/provider.rb +5 -0
  39. data/lib/deimos/utils/db_poller.rb +9 -1
  40. data/lib/deimos/utils/db_producer.rb +14 -2
  41. data/lib/deimos/utils/deadlock_retry.rb +3 -0
  42. data/lib/deimos/utils/inline_consumer.rb +14 -6
  43. data/lib/deimos/utils/lag_reporter.rb +11 -0
  44. data/lib/deimos/utils/schema_controller_mixin.rb +8 -0
  45. data/lib/deimos/version.rb +1 -1
  46. data/lib/deimos.rb +3 -2
  47. data/lib/generators/deimos/active_record_generator.rb +1 -1
  48. data/lib/generators/deimos/db_backend_generator.rb +1 -0
  49. data/lib/generators/deimos/db_poller_generator.rb +1 -0
  50. data/lib/generators/deimos/schema_class/templates/schema_record.rb.tt +13 -5
  51. data/lib/generators/deimos/schema_class_generator.rb +51 -24
  52. data/rbs_collection.lock.yaml +176 -0
  53. data/rbs_collection.yaml +15 -0
  54. data/regenerate_test_schema_classes.rb +68 -0
  55. data/sig/avro.rbs +14 -0
  56. data/sig/defs.rbs +1859 -0
  57. data/sig/fig_tree.rbs +2 -0
  58. data/spec/active_record_producer_spec.rb +24 -0
  59. data/spec/generators/schema_class/my_schema_spec.rb +16 -0
  60. data/spec/generators/schema_class/my_schema_with_circular_reference_spec.rb +1 -1
  61. data/spec/generators/schema_class/my_schema_with_complex_types_spec.rb +32 -24
  62. data/spec/producer_spec.rb +11 -11
  63. data/spec/schemas/{generated.rb → my_namespace/generated.rb} +28 -32
  64. data/spec/schemas/{my_nested_schema.rb → my_namespace/my_nested_schema.rb} +23 -16
  65. data/spec/schemas/{my_schema.rb → my_namespace/my_schema.rb} +12 -5
  66. data/spec/schemas/my_namespace/my_schema_compound_key.rb +41 -0
  67. data/spec/schemas/my_namespace/my_schema_id_key.rb +36 -0
  68. data/spec/schemas/{my_schema_key.rb → my_namespace/my_schema_key.rb} +3 -3
  69. data/spec/schemas/my_namespace/my_schema_with_boolean.rb +41 -0
  70. data/spec/schemas/{my_schema_with_circular_reference.rb → my_namespace/my_schema_with_circular_reference.rb} +15 -10
  71. data/spec/schemas/{my_schema_with_complex_type.rb → my_namespace/my_schema_with_complex_type.rb} +34 -49
  72. data/spec/schemas/my_namespace/my_schema_with_date_time.rb +56 -0
  73. data/spec/schemas/my_namespace/my_schema_with_id.rb +51 -0
  74. data/spec/schemas/my_namespace/my_schema_with_unique_id.rb +56 -0
  75. data/spec/schemas/my_namespace/wibble.rb +76 -0
  76. data/spec/schemas/my_namespace/widget.rb +56 -0
  77. data/spec/schemas/my_namespace/widget_the_second.rb +56 -0
  78. data/spec/schemas/request/create_topic.rb +36 -0
  79. data/spec/schemas/request/index.rb +36 -0
  80. data/spec/schemas/request/update_request.rb +36 -0
  81. data/spec/schemas/response/create_topic.rb +36 -0
  82. data/spec/schemas/response/index.rb +36 -0
  83. data/spec/schemas/response/update_response.rb +36 -0
  84. data/spec/snapshots/consumers-no-nest.snap +93 -86
  85. data/spec/snapshots/consumers.snap +94 -87
  86. data/spec/snapshots/consumers_and_producers-no-nest.snap +108 -87
  87. data/spec/snapshots/consumers_and_producers.snap +109 -88
  88. data/spec/snapshots/consumers_circular-no-nest.snap +93 -86
  89. data/spec/snapshots/consumers_circular.snap +94 -87
  90. data/spec/snapshots/consumers_complex_types-no-nest.snap +93 -86
  91. data/spec/snapshots/consumers_complex_types.snap +94 -87
  92. data/spec/snapshots/consumers_nested-no-nest.snap +93 -86
  93. data/spec/snapshots/consumers_nested.snap +94 -87
  94. data/spec/snapshots/namespace_folders.snap +111 -90
  95. data/spec/snapshots/producers_with_key-no-nest.snap +94 -87
  96. data/spec/snapshots/producers_with_key.snap +95 -88
  97. data/spec/spec_helper.rb +2 -1
  98. metadata +53 -15
@@ -0,0 +1,41 @@
1
+ # frozen_string_literal: true
2
+
3
+ # This file is autogenerated by Deimos, Do NOT modify
4
+ module Schemas; module MyNamespace
5
+ ### Primary Schema Class ###
6
+ # Autogenerated Schema for Record at com.my-namespace.MySchemaWithBooleans
7
+ class MySchemaWithBoolean < Deimos::SchemaClass::Record
8
+
9
+ ### Attribute Accessors ###
10
+ # @return [String]
11
+ attr_accessor :test_id
12
+ # @return [Boolean]
13
+ attr_accessor :some_bool
14
+
15
+ # @override
16
+ def initialize(test_id: nil,
17
+ some_bool: nil)
18
+ super
19
+ self.test_id = test_id
20
+ self.some_bool = some_bool
21
+ end
22
+
23
+ # @override
24
+ def schema
25
+ 'MySchemaWithBooleans'
26
+ end
27
+
28
+ # @override
29
+ def namespace
30
+ 'com.my-namespace'
31
+ end
32
+
33
+ # @override
34
+ def as_json(_opts={})
35
+ {
36
+ 'test_id' => @test_id,
37
+ 'some_bool' => @some_bool
38
+ }
39
+ end
40
+ end
41
+ end; end
@@ -1,7 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  # This file is autogenerated by Deimos, Do NOT modify
4
- module Schemas
4
+ module Schemas; module MyNamespace
5
5
  ### Primary Schema Class ###
6
6
  # Autogenerated Schema for Record at com.my-namespace.MySchemaWithCircularReference
7
7
  class MySchemaWithCircularReference < Deimos::SchemaClass::Record
@@ -9,27 +9,27 @@ module Schemas
9
9
  ### Secondary Schema Classes ###
10
10
  # Autogenerated Schema for Record at com.my-namespace.Property
11
11
  class Property < Deimos::SchemaClass::Record
12
-
12
+
13
13
  ### Attribute Accessors ###
14
- # @param value [Boolean, Integer, Integer, Float, Float, String, Array<Property>, Hash<String, Property>]
14
+ # @return [Boolean, Integer, Integer, Float, Float, String, Array<Property>, Hash<String, Property>]
15
15
  attr_accessor :property
16
-
16
+
17
17
  # @override
18
18
  def initialize(property: nil)
19
19
  super
20
20
  self.property = property
21
21
  end
22
-
22
+
23
23
  # @override
24
24
  def schema
25
25
  'Property'
26
26
  end
27
-
27
+
28
28
  # @override
29
29
  def namespace
30
30
  'com.my-namespace'
31
31
  end
32
-
32
+
33
33
  # @override
34
34
  def as_json(_opts={})
35
35
  {
@@ -44,9 +44,9 @@ module Schemas
44
44
  attr_reader :properties
45
45
 
46
46
  ### Attribute Writers ###
47
- # @param values [Hash<String, Property>]
47
+ # @return [Hash<String, Property>]
48
48
  def properties=(values)
49
- @properties = values.transform_values do |value|
49
+ @properties = values&.transform_values do |value|
50
50
  Property.initialize_from_value(value)
51
51
  end
52
52
  end
@@ -67,6 +67,11 @@ module Schemas
67
67
  'com.my-namespace'
68
68
  end
69
69
 
70
+ def self.tombstone(key)
71
+ record = self.new
72
+ record
73
+ end
74
+
70
75
  # @override
71
76
  def as_json(_opts={})
72
77
  {
@@ -74,4 +79,4 @@ module Schemas
74
79
  }
75
80
  end
76
81
  end
77
- end
82
+ end; end
@@ -1,7 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  # This file is autogenerated by Deimos, Do NOT modify
4
- module Schemas
4
+ module Schemas; module MyNamespace
5
5
  ### Primary Schema Class ###
6
6
  # Autogenerated Schema for Record at com.my-namespace.MySchemaWithComplexTypes
7
7
  class MySchemaWithComplexType < Deimos::SchemaClass::Record
@@ -9,27 +9,27 @@ module Schemas
9
9
  ### Secondary Schema Classes ###
10
10
  # Autogenerated Schema for Record at com.my-namespace.ARecord
11
11
  class ARecord < Deimos::SchemaClass::Record
12
-
12
+
13
13
  ### Attribute Accessors ###
14
- # @param value [String]
14
+ # @return [String]
15
15
  attr_accessor :a_record_field
16
-
16
+
17
17
  # @override
18
18
  def initialize(a_record_field: nil)
19
19
  super
20
20
  self.a_record_field = a_record_field
21
21
  end
22
-
22
+
23
23
  # @override
24
24
  def schema
25
25
  'ARecord'
26
26
  end
27
-
27
+
28
28
  # @override
29
29
  def namespace
30
30
  'com.my-namespace'
31
31
  end
32
-
32
+
33
33
  # @override
34
34
  def as_json(_opts={})
35
35
  {
@@ -42,7 +42,7 @@ module Schemas
42
42
  class AnEnum < Deimos::SchemaClass::Enum
43
43
  # @return ['sym1', 'sym2']
44
44
  attr_accessor :an_enum
45
-
45
+
46
46
  # @override
47
47
  def symbols
48
48
  %w(sym1 sym2)
@@ -53,44 +53,22 @@ module Schemas
53
53
  class AnotherEnum < Deimos::SchemaClass::Enum
54
54
  # @return ['sym3', 'sym4']
55
55
  attr_accessor :another_enum
56
-
57
- # :nodoc:
58
- def initialize(another_enum)
59
- super
60
- self.another_enum = another_enum
61
- end
62
-
56
+
63
57
  # @override
64
58
  def symbols
65
59
  %w(sym3 sym4)
66
60
  end
67
-
68
- # @override
69
- def as_json(_opts={})
70
- @another_enum
71
- end
72
61
  end
73
62
 
74
63
  # Autogenerated Schema for Enum at com.my-namespace.YetAnotherEnum
75
64
  class YetAnotherEnum < Deimos::SchemaClass::Enum
76
65
  # @return ['sym5', 'sym6']
77
66
  attr_accessor :yet_another_enum
78
-
79
- # :nodoc:
80
- def initialize(yet_another_enum)
81
- super
82
- self.yet_another_enum = yet_another_enum
83
- end
84
-
67
+
85
68
  # @override
86
69
  def symbols
87
70
  %w(sym5 sym6)
88
71
  end
89
-
90
- # @override
91
- def as_json(_opts={})
92
- @yet_another_enum
93
- end
94
72
  end
95
73
 
96
74
 
@@ -111,57 +89,57 @@ module Schemas
111
89
  attr_reader :some_enum_with_default
112
90
 
113
91
  ### Attribute Accessors ###
114
- # @param value [String]
92
+ # @return [String]
115
93
  attr_accessor :test_id
116
- # @param value [Float]
94
+ # @return [Float]
117
95
  attr_accessor :test_float
118
- # @param values [Array<String>]
96
+ # @return [Array<String>]
119
97
  attr_accessor :test_string_array
120
- # @param values [Array<Integer>]
98
+ # @return [Array<Integer>]
121
99
  attr_accessor :test_int_array
122
- # @param value [Integer, nil]
100
+ # @return [Integer, nil]
123
101
  attr_accessor :test_optional_int
124
- # @param values [Hash<String, Integer>]
102
+ # @return [Hash<String, Integer>]
125
103
  attr_accessor :some_integer_map
126
104
 
127
105
  ### Attribute Writers ###
128
- # @param value [ARecord]
106
+ # @return [ARecord]
129
107
  def some_record=(value)
130
108
  @some_record = ARecord.initialize_from_value(value)
131
109
  end
132
110
 
133
- # @param value [nil, ARecord]
111
+ # @return [nil, ARecord]
134
112
  def some_optional_record=(value)
135
113
  @some_optional_record = ARecord.initialize_from_value(value)
136
114
  end
137
115
 
138
- # @param values [Array<ARecord>]
116
+ # @return [Array<ARecord>]
139
117
  def some_record_array=(values)
140
- @some_record_array = values.map do |value|
118
+ @some_record_array = values&.map do |value|
141
119
  ARecord.initialize_from_value(value)
142
120
  end
143
121
  end
144
122
 
145
- # @param values [Hash<String, ARecord>]
123
+ # @return [Hash<String, ARecord>]
146
124
  def some_record_map=(values)
147
- @some_record_map = values.transform_values do |value|
125
+ @some_record_map = values&.transform_values do |value|
148
126
  ARecord.initialize_from_value(value)
149
127
  end
150
128
  end
151
129
 
152
- # @param values [Array<AnEnum>]
130
+ # @return [Array<AnEnum>]
153
131
  def some_enum_array=(values)
154
- @some_enum_array = values.map do |value|
132
+ @some_enum_array = values&.map do |value|
155
133
  AnEnum.initialize_from_value(value)
156
134
  end
157
135
  end
158
136
 
159
- # @param value [nil, AnotherEnum]
137
+ # @return [nil, AnotherEnum]
160
138
  def some_optional_enum=(value)
161
139
  @some_optional_enum = AnotherEnum.initialize_from_value(value)
162
140
  end
163
141
 
164
- # @param value [YetAnotherEnum]
142
+ # @return [YetAnotherEnum]
165
143
  def some_enum_with_default=(value)
166
144
  @some_enum_with_default = YetAnotherEnum.initialize_from_value(value)
167
145
  end
@@ -206,6 +184,13 @@ module Schemas
206
184
  'com.my-namespace'
207
185
  end
208
186
 
187
+ def self.tombstone(key)
188
+ record = self.new
189
+ record.tombstone_key = key
190
+ record.test_id = key
191
+ record
192
+ end
193
+
209
194
  # @override
210
195
  def as_json(_opts={})
211
196
  {
@@ -225,4 +210,4 @@ module Schemas
225
210
  }
226
211
  end
227
212
  end
228
- end
213
+ end; end
@@ -0,0 +1,56 @@
1
+ # frozen_string_literal: true
2
+
3
+ # This file is autogenerated by Deimos, Do NOT modify
4
+ module Schemas; module MyNamespace
5
+ ### Primary Schema Class ###
6
+ # Autogenerated Schema for Record at com.my-namespace.MySchemaWithDateTimes
7
+ class MySchemaWithDateTime < Deimos::SchemaClass::Record
8
+
9
+ ### Attribute Accessors ###
10
+ # @return [String]
11
+ attr_accessor :test_id
12
+ # @return [Integer, nil]
13
+ attr_accessor :updated_at
14
+ # @return [nil, Integer]
15
+ attr_accessor :some_int
16
+ # @return [nil, Integer]
17
+ attr_accessor :some_datetime_int
18
+ # @return [String]
19
+ attr_accessor :timestamp
20
+
21
+ # @override
22
+ def initialize(test_id: nil,
23
+ updated_at: nil,
24
+ some_int: nil,
25
+ some_datetime_int: nil,
26
+ timestamp: nil)
27
+ super
28
+ self.test_id = test_id
29
+ self.updated_at = updated_at
30
+ self.some_int = some_int
31
+ self.some_datetime_int = some_datetime_int
32
+ self.timestamp = timestamp
33
+ end
34
+
35
+ # @override
36
+ def schema
37
+ 'MySchemaWithDateTimes'
38
+ end
39
+
40
+ # @override
41
+ def namespace
42
+ 'com.my-namespace'
43
+ end
44
+
45
+ # @override
46
+ def as_json(_opts={})
47
+ {
48
+ 'test_id' => @test_id,
49
+ 'updated_at' => @updated_at,
50
+ 'some_int' => @some_int,
51
+ 'some_datetime_int' => @some_datetime_int,
52
+ 'timestamp' => @timestamp
53
+ }
54
+ end
55
+ end
56
+ end; end
@@ -0,0 +1,51 @@
1
+ # frozen_string_literal: true
2
+
3
+ # This file is autogenerated by Deimos, Do NOT modify
4
+ module Schemas; module MyNamespace
5
+ ### Primary Schema Class ###
6
+ # Autogenerated Schema for Record at com.my-namespace.MySchemaWithId
7
+ class MySchemaWithId < Deimos::SchemaClass::Record
8
+
9
+ ### Attribute Accessors ###
10
+ # @return [String]
11
+ attr_accessor :test_id
12
+ # @return [Integer]
13
+ attr_accessor :some_int
14
+ # @return [String]
15
+ attr_accessor :message_id
16
+ # @return [String]
17
+ attr_accessor :timestamp
18
+
19
+ # @override
20
+ def initialize(test_id: nil,
21
+ some_int: nil,
22
+ message_id: nil,
23
+ timestamp: nil)
24
+ super
25
+ self.test_id = test_id
26
+ self.some_int = some_int
27
+ self.message_id = message_id
28
+ self.timestamp = timestamp
29
+ end
30
+
31
+ # @override
32
+ def schema
33
+ 'MySchemaWithId'
34
+ end
35
+
36
+ # @override
37
+ def namespace
38
+ 'com.my-namespace'
39
+ end
40
+
41
+ # @override
42
+ def as_json(_opts={})
43
+ {
44
+ 'test_id' => @test_id,
45
+ 'some_int' => @some_int,
46
+ 'message_id' => @message_id,
47
+ 'timestamp' => @timestamp
48
+ }
49
+ end
50
+ end
51
+ end; end
@@ -0,0 +1,56 @@
1
+ # frozen_string_literal: true
2
+
3
+ # This file is autogenerated by Deimos, Do NOT modify
4
+ module Schemas; module MyNamespace
5
+ ### Primary Schema Class ###
6
+ # Autogenerated Schema for Record at com.my-namespace.MySchemaWithUniqueId
7
+ class MySchemaWithUniqueId < Deimos::SchemaClass::Record
8
+
9
+ ### Attribute Accessors ###
10
+ # @return [Integer]
11
+ attr_accessor :id
12
+ # @return [String]
13
+ attr_accessor :test_id
14
+ # @return [Integer]
15
+ attr_accessor :some_int
16
+ # @return [String]
17
+ attr_accessor :message_id
18
+ # @return [String]
19
+ attr_accessor :timestamp
20
+
21
+ # @override
22
+ def initialize(id: nil,
23
+ test_id: nil,
24
+ some_int: nil,
25
+ message_id: nil,
26
+ timestamp: nil)
27
+ super
28
+ self.id = id
29
+ self.test_id = test_id
30
+ self.some_int = some_int
31
+ self.message_id = message_id
32
+ self.timestamp = timestamp
33
+ end
34
+
35
+ # @override
36
+ def schema
37
+ 'MySchemaWithUniqueId'
38
+ end
39
+
40
+ # @override
41
+ def namespace
42
+ 'com.my-namespace'
43
+ end
44
+
45
+ # @override
46
+ def as_json(_opts={})
47
+ {
48
+ 'id' => @id,
49
+ 'test_id' => @test_id,
50
+ 'some_int' => @some_int,
51
+ 'message_id' => @message_id,
52
+ 'timestamp' => @timestamp
53
+ }
54
+ end
55
+ end
56
+ end; end
@@ -0,0 +1,76 @@
1
+ # frozen_string_literal: true
2
+
3
+ # This file is autogenerated by Deimos, Do NOT modify
4
+ module Schemas; module MyNamespace
5
+ ### Primary Schema Class ###
6
+ # Autogenerated Schema for Record at com.my-namespace.Wibble
7
+ class Wibble < Deimos::SchemaClass::Record
8
+
9
+ ### Attribute Accessors ###
10
+ # @return [Integer]
11
+ attr_accessor :id
12
+ # @return [Integer]
13
+ attr_accessor :wibble_id
14
+ # @return [String]
15
+ attr_accessor :name
16
+ # @return [String]
17
+ attr_accessor :floop
18
+ # @return [Integer]
19
+ attr_accessor :birthday_int
20
+ # @return [Integer]
21
+ attr_accessor :birthday_long
22
+ # @return [nil, Integer]
23
+ attr_accessor :birthday_optional
24
+ # @return [Integer]
25
+ attr_accessor :updated_at
26
+ # @return [Integer]
27
+ attr_accessor :created_at
28
+
29
+ # @override
30
+ def initialize(id: nil,
31
+ wibble_id: nil,
32
+ name: nil,
33
+ floop: nil,
34
+ birthday_int: nil,
35
+ birthday_long: nil,
36
+ birthday_optional: nil,
37
+ updated_at: nil,
38
+ created_at: nil)
39
+ super
40
+ self.id = id
41
+ self.wibble_id = wibble_id
42
+ self.name = name
43
+ self.floop = floop
44
+ self.birthday_int = birthday_int
45
+ self.birthday_long = birthday_long
46
+ self.birthday_optional = birthday_optional
47
+ self.updated_at = updated_at
48
+ self.created_at = created_at
49
+ end
50
+
51
+ # @override
52
+ def schema
53
+ 'Wibble'
54
+ end
55
+
56
+ # @override
57
+ def namespace
58
+ 'com.my-namespace'
59
+ end
60
+
61
+ # @override
62
+ def as_json(_opts={})
63
+ {
64
+ 'id' => @id,
65
+ 'wibble_id' => @wibble_id,
66
+ 'name' => @name,
67
+ 'floop' => @floop,
68
+ 'birthday_int' => @birthday_int,
69
+ 'birthday_long' => @birthday_long,
70
+ 'birthday_optional' => @birthday_optional,
71
+ 'updated_at' => @updated_at,
72
+ 'created_at' => @created_at
73
+ }
74
+ end
75
+ end
76
+ end; end
@@ -0,0 +1,56 @@
1
+ # frozen_string_literal: true
2
+
3
+ # This file is autogenerated by Deimos, Do NOT modify
4
+ module Schemas; module MyNamespace
5
+ ### Primary Schema Class ###
6
+ # Autogenerated Schema for Record at com.my-namespace.Widget
7
+ class Widget < Deimos::SchemaClass::Record
8
+
9
+ ### Attribute Accessors ###
10
+ # @return [Integer]
11
+ attr_accessor :id
12
+ # @return [Integer]
13
+ attr_accessor :widget_id
14
+ # @return [String]
15
+ attr_accessor :name
16
+ # @return [Integer]
17
+ attr_accessor :updated_at
18
+ # @return [Integer]
19
+ attr_accessor :created_at
20
+
21
+ # @override
22
+ def initialize(id: nil,
23
+ widget_id: nil,
24
+ name: nil,
25
+ updated_at: nil,
26
+ created_at: nil)
27
+ super
28
+ self.id = id
29
+ self.widget_id = widget_id
30
+ self.name = name
31
+ self.updated_at = updated_at
32
+ self.created_at = created_at
33
+ end
34
+
35
+ # @override
36
+ def schema
37
+ 'Widget'
38
+ end
39
+
40
+ # @override
41
+ def namespace
42
+ 'com.my-namespace'
43
+ end
44
+
45
+ # @override
46
+ def as_json(_opts={})
47
+ {
48
+ 'id' => @id,
49
+ 'widget_id' => @widget_id,
50
+ 'name' => @name,
51
+ 'updated_at' => @updated_at,
52
+ 'created_at' => @created_at
53
+ }
54
+ end
55
+ end
56
+ end; end
@@ -0,0 +1,56 @@
1
+ # frozen_string_literal: true
2
+
3
+ # This file is autogenerated by Deimos, Do NOT modify
4
+ module Schemas; module MyNamespace
5
+ ### Primary Schema Class ###
6
+ # Autogenerated Schema for Record at com.my-namespace.WidgetTheSecond
7
+ class WidgetTheSecond < Deimos::SchemaClass::Record
8
+
9
+ ### Attribute Accessors ###
10
+ # @return [Integer]
11
+ attr_accessor :id
12
+ # @return [Integer]
13
+ attr_accessor :widget_id
14
+ # @return [String]
15
+ attr_accessor :model_id
16
+ # @return [Integer]
17
+ attr_accessor :updated_at
18
+ # @return [Integer]
19
+ attr_accessor :created_at
20
+
21
+ # @override
22
+ def initialize(id: nil,
23
+ widget_id: nil,
24
+ model_id: nil,
25
+ updated_at: nil,
26
+ created_at: nil)
27
+ super
28
+ self.id = id
29
+ self.widget_id = widget_id
30
+ self.model_id = model_id
31
+ self.updated_at = updated_at
32
+ self.created_at = created_at
33
+ end
34
+
35
+ # @override
36
+ def schema
37
+ 'WidgetTheSecond'
38
+ end
39
+
40
+ # @override
41
+ def namespace
42
+ 'com.my-namespace'
43
+ end
44
+
45
+ # @override
46
+ def as_json(_opts={})
47
+ {
48
+ 'id' => @id,
49
+ 'widget_id' => @widget_id,
50
+ 'model_id' => @model_id,
51
+ 'updated_at' => @updated_at,
52
+ 'created_at' => @created_at
53
+ }
54
+ end
55
+ end
56
+ end; end
@@ -0,0 +1,36 @@
1
+ # frozen_string_literal: true
2
+
3
+ # This file is autogenerated by Deimos, Do NOT modify
4
+ module Schemas; module Request
5
+ ### Primary Schema Class ###
6
+ # Autogenerated Schema for Record at com.my-namespace.request.CreateTopic
7
+ class CreateTopic < Deimos::SchemaClass::Record
8
+
9
+ ### Attribute Accessors ###
10
+ # @return [String]
11
+ attr_accessor :request_id
12
+
13
+ # @override
14
+ def initialize(request_id: nil)
15
+ super
16
+ self.request_id = request_id
17
+ end
18
+
19
+ # @override
20
+ def schema
21
+ 'CreateTopic'
22
+ end
23
+
24
+ # @override
25
+ def namespace
26
+ 'com.my-namespace.request'
27
+ end
28
+
29
+ # @override
30
+ def as_json(_opts={})
31
+ {
32
+ 'request_id' => @request_id
33
+ }
34
+ end
35
+ end
36
+ end; end