deimos-ruby 1.16.1 → 1.16.4

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