deimos-ruby 1.13.0 → 1.13.3

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: c57c2700b01b998f358cb4e96ee6e6b2c1c8c32936d741b2371182a6017f7adc
4
- data.tar.gz: 440bf25b629ba34da51cd1c0a1b443858bcd4ca270fed800b6e277c050b0741f
3
+ metadata.gz: 59719a901339d9ebf5806a71e960fc68a7e75a1a217e6003215a42db04edb261
4
+ data.tar.gz: f9e8f274825a78298779061cf279b563d7ec40948e34ceff4458a51f51dea6b2
5
5
  SHA512:
6
- metadata.gz: 05df77f7f8890959ea91817a7497c11348d3b68f349462275a1ffb133a1c8194d9ee2282ac3dbe14a389bd09f16f059c88b467c05fb959c1a334b7c3789ade92
7
- data.tar.gz: bc8b8c832a7399a6c60a4a0ac71582aff4ff324d5a2c9bb2a73241bb64de3a958d09208e1c127d36e8b3c47077857224ec853aaea769ef00aaef88dc6e6cf0e9
6
+ metadata.gz: 62489d41c135b8141b45cf2a3b71717fc41bed0a22b26cfadd5ad22635d1f3a4ca770f7321cf5205159dd0a1f879ea6a9628623b3c5c3d9205a533d179ba7b52
7
+ data.tar.gz: 689f66152efe31e6b65c0eea5db5471c2a927708ca2bdcad9a859b32b85ecf1f789efefbee71059d9351c2b7a332b90be093330fd3e5be375d3c0a92b44c7837
data/CHANGELOG.md CHANGED
@@ -7,6 +7,18 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
7
7
 
8
8
  ## UNRELEASED
9
9
 
10
+ - Some cleanup on the active_record generator
11
+ - Fix crash with `test_consume_message` when using schema classes
12
+ - Add `[]=` and `merge` methods on the base schema class
13
+
14
+ # 1.13.2 - 2022-04-07
15
+
16
+ - Fix an issue with generating schema classes for schemas containing an enum with default value
17
+
18
+ # 1.13.1 - 2022-04-06
19
+
20
+ - Fix circular reference schema generation
21
+
10
22
  # 1.13.0 - 2022-03-30
11
23
 
12
24
  - Pass the Deimos logger to `AvroTurf::Messaging` for consistent logging
@@ -29,6 +29,23 @@ module Deimos
29
29
  raise NotImplementedError
30
30
  end
31
31
 
32
+ # @param key [String|Symbol]
33
+ # @param val [Object]
34
+ def []=(key, val)
35
+ self.send("#{key}=", val)
36
+ end
37
+
38
+ # Merge a hash or an identical schema object with this one and return a new object.
39
+ # @param other_hash [Hash|SchemaClasses::Base]
40
+ # @return [SchemaClasses::Base]
41
+ def merge(other_hash)
42
+ obj = self.class.new(**self.to_h.symbolize_keys)
43
+ other_hash.to_h.each do |k, v|
44
+ obj.send("#{k}=", v)
45
+ end
46
+ obj
47
+ end
48
+
32
49
  # :nodoc:
33
50
  def ==(other)
34
51
  comparison = other
@@ -188,7 +188,7 @@ module Deimos
188
188
  &block)
189
189
  raise 'Cannot have both call_original and be given a block!' if call_original && block_given?
190
190
 
191
- payload&.stringify_keys!
191
+ payload.stringify_keys! if payload.respond_to?(:stringify_keys!)
192
192
  handler_class = if handler_class_or_topic.is_a?(String)
193
193
  _get_handler_class_from_topic(handler_class_or_topic)
194
194
  else
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Deimos
4
- VERSION = '1.13.0'
4
+ VERSION = '1.13.3'
5
5
  end
@@ -6,7 +6,7 @@ class <%= migration_class_name %> < ActiveRecord::Migration<%= migration_version
6
6
  end
7
7
  create_table :<%= table_name %> do |t|
8
8
  <%- fields.each do |key| -%>
9
- <%- next if %w(id message_id timestamp).include?(key.name) -%>
9
+ <%- next if %w(id message_id timestamp updated_at created_at).include?(key.name) -%>
10
10
  <%- sql_type = schema_base.sql_type(key)
11
11
  if %w(record array map).include?(sql_type)
12
12
  conn = ActiveRecord::Base.connection
@@ -15,9 +15,11 @@ class <%= migration_class_name %> < ActiveRecord::Migration<%= migration_version
15
15
  -%>
16
16
  t.<%= sql_type %> :<%= key.name %>
17
17
  <%- end -%>
18
- end
19
18
 
20
- # TODO add indexes as necessary
19
+ t.timestamps
20
+
21
+ # TODO add indexes as necessary
22
+ end
21
23
  end
22
24
 
23
25
  def down
@@ -72,7 +72,7 @@ module Deimos
72
72
  # :nodoc:
73
73
  def generate
74
74
  migration_template('migration.rb', "db/migrate/create_#{table_name.underscore}.rb")
75
- template('model.rb', "app/models/#{table_name.underscore}.rb")
75
+ template('model.rb', "app/models/#{table_name.underscore.singularize}.rb")
76
76
  end
77
77
  end
78
78
  end
@@ -63,7 +63,7 @@ module Deimos
63
63
  elsif schema.respond_to?(:items)
64
64
  [schema.items]
65
65
  elsif schema.respond_to?(:schemas)
66
- schema.schemas
66
+ schema.schemas.reject { |s| s.class == Avro::Schema::PrimitiveSchema }
67
67
  else
68
68
  []
69
69
  end
@@ -73,17 +73,22 @@ module Deimos
73
73
  # @return [Array<Avro::Schema::NamedSchema>]
74
74
  def collect_all_schemas(schemas)
75
75
  schemas.dup.each do |schema|
76
+ next if @discovered_schemas.include?(schema)
77
+
78
+ @discovered_schemas << schema
76
79
  schemas.concat(collect_all_schemas(child_schemas(schema)))
77
80
  end
81
+
78
82
  schemas.select { |s| s.respond_to?(:name) }.uniq
79
83
  end
80
84
 
81
85
  # @param schema_base [Deimos::SchemaBackends::Base]
82
86
  # @param key_schema_base[Avro::Schema::NamedSchema]
83
87
  def generate_class_from_schema_base(schema_base, key_schema_base: nil)
88
+ @discovered_schemas = Set.new
84
89
  schemas = collect_all_schemas(schema_base.schema_store.schemas.values)
85
90
 
86
- sub_schemas = schemas.reject { |s| s.name == schema_base.schema }
91
+ sub_schemas = schemas.reject { |s| s.name == schema_base.schema }.sort_by(&:name)
87
92
  @sub_schema_templates = sub_schemas.map do |schema|
88
93
  _generate_class_template_from_schema(schema)
89
94
  end
@@ -201,8 +206,8 @@ module Deimos
201
206
  return ' nil' if default == :no_default || default.nil? || IGNORE_DEFAULTS.include?(field.name)
202
207
 
203
208
  case field.type.type_sym
204
- when :string
205
- " '#{default}'"
209
+ when :string, :enum
210
+ " \"#{default}\""
206
211
  when :record
207
212
  schema_name = Deimos::SchemaBackends::AvroBase.schema_classname(field.type)
208
213
  class_instance = Utils::SchemaClass.instance(field.default, schema_name)
@@ -0,0 +1,97 @@
1
+ # frozen_string_literal: true
2
+
3
+ # For testing the generated class.
4
+ RSpec.describe Schemas::MySchemaWithCircularReference do
5
+ let(:payload_hash) do
6
+ {
7
+ properties: {
8
+ a_boolean: {
9
+ property: true
10
+ },
11
+ an_integer: {
12
+ property: 1
13
+ },
14
+ a_float: {
15
+ property: 4.5
16
+ },
17
+ a_string: {
18
+ property: 'string'
19
+ },
20
+ an_array: {
21
+ property: [1, 2, 3]
22
+ },
23
+ an_hash: {
24
+ property: {
25
+ a_key: 'a_value'
26
+ }
27
+ }
28
+ }
29
+ }
30
+ end
31
+
32
+ describe 'class initialization' do
33
+ it 'should initialize the class from keyword arguments' do
34
+ klass = described_class.new(properties: payload_hash[:properties])
35
+ expect(klass).to be_instance_of(described_class)
36
+ end
37
+
38
+ it 'should initialize the class from a hash with symbols as keys' do
39
+ klass = described_class.new(**payload_hash)
40
+ expect(klass).to be_instance_of(described_class)
41
+ end
42
+
43
+ it 'should initialize the class when missing attributes' do
44
+ payload_hash.delete(:properties)
45
+ klass = described_class.new(**payload_hash)
46
+ expect(klass).to be_instance_of(described_class)
47
+ end
48
+
49
+ end
50
+
51
+ describe 'base class methods' do
52
+ let(:klass) do
53
+ described_class.new(**payload_hash)
54
+ end
55
+
56
+ it 'should return the name of the schema and namespace' do
57
+ expect(klass.schema).to eq('MySchemaWithCircularReference')
58
+ expect(klass.namespace).to eq('com.my-namespace')
59
+ expect(klass.full_schema).to eq('com.my-namespace.MySchemaWithCircularReference')
60
+ end
61
+
62
+ it 'should return a json version of the payload' do
63
+ described_class.new(**payload_hash)
64
+ payload_h = {
65
+ 'properties' => {
66
+ 'a_boolean' => {
67
+ 'property' => true
68
+ },
69
+ 'an_integer' => {
70
+ 'property' => 1
71
+ },
72
+ 'a_float' => {
73
+ 'property' => 4.5
74
+ },
75
+ 'a_string' => {
76
+ 'property' => 'string'
77
+ },
78
+ 'an_array' => {
79
+ 'property' => [1, 2, 3]
80
+ },
81
+ 'an_hash' => {
82
+ 'property' => {
83
+ 'a_key' => 'a_value'
84
+ }
85
+ }
86
+ }
87
+ }
88
+
89
+ expect(klass.as_json).to eq(payload_h)
90
+ end
91
+
92
+ it 'should return a JSON string of the payload' do
93
+ s = '{"properties":{"a_boolean":{"property":true},"an_integer":{"property":1},"a_float":{"property":4.5},"a_string":{"property":"string"},"an_array":{"property":[1,2,3]},"an_hash":{"property":{"a_key":"a_value"}}}}'
94
+ expect(klass.to_json).to eq(s)
95
+ end
96
+ end
97
+ end
@@ -57,7 +57,7 @@ RSpec.describe Schemas::MySchemaWithComplexTypes do
57
57
  end
58
58
 
59
59
  let(:schema_fields) do
60
- %w(test_id test_float test_int_array test_optional_int test_string_array some_integer_map some_record some_optional_record some_record_array some_record_map some_enum_array some_optional_enum)
60
+ %w(test_id test_float test_int_array test_optional_int test_string_array some_integer_map some_record some_optional_record some_record_array some_record_map some_enum_array some_optional_enum some_enum_with_default)
61
61
  end
62
62
 
63
63
  it 'should return the name of the schema and namespace' do
@@ -90,14 +90,15 @@ RSpec.describe Schemas::MySchemaWithComplexTypes do
90
90
  'record_1' => { 'a_record_field' => 'field 5' },
91
91
  'record_2' => { 'a_record_field' => 'field 6' }
92
92
  },
93
- 'some_enum_array' => %w(sym1 sym2)
93
+ 'some_enum_array' => %w(sym1 sym2),
94
+ 'some_enum_with_default' => 'sym6'
94
95
  }
95
96
 
96
97
  expect(klass.as_json).to eq(payload_h)
97
98
  end
98
99
 
99
100
  it 'should return a JSON string of the payload' do
100
- s = '{"test_id":"test id","test_float":1.2,"test_string_array":["abc","def"],"test_int_array":[123,456],"test_optional_int":123,"some_integer_map":{"int_1":1,"int_2":2},"some_record":{"a_record_field":"field 1"},"some_optional_record":{"a_record_field":"field 2"},"some_record_array":[{"a_record_field":"field 3"},{"a_record_field":"field 4"}],"some_record_map":{"record_1":{"a_record_field":"field 5"},"record_2":{"a_record_field":"field 6"}},"some_enum_array":["sym1","sym2"],"some_optional_enum":null}'
101
+ s = '{"test_id":"test id","test_float":1.2,"test_string_array":["abc","def"],"test_int_array":[123,456],"test_optional_int":123,"some_integer_map":{"int_1":1,"int_2":2},"some_record":{"a_record_field":"field 1"},"some_optional_record":{"a_record_field":"field 2"},"some_record_array":[{"a_record_field":"field 3"},{"a_record_field":"field 4"}],"some_record_map":{"record_1":{"a_record_field":"field 5"},"record_2":{"a_record_field":"field 6"}},"some_enum_array":["sym1","sym2"],"some_optional_enum":null,"some_enum_with_default":"sym6"}'
101
102
  expect(klass.to_json).to eq(s)
102
103
  end
103
104
  end
@@ -73,6 +73,32 @@ RSpec.describe Deimos::Generators::SchemaClassGenerator do
73
73
  end
74
74
  end
75
75
 
76
+ context 'with a Consumers Schema with a circular reference' do
77
+ before(:each) do
78
+ Deimos.configure do
79
+ consumer do
80
+ class_name 'ConsumerTest::MyConsumer'
81
+ topic 'MyTopic'
82
+ schema 'MySchemaWithCircularReference'
83
+ namespace 'com.my-namespace'
84
+ key_config field: :a_string
85
+ end
86
+ end
87
+ described_class.start
88
+ end
89
+
90
+ it 'should generate the correct number of classes' do
91
+ expect(files.length).to eq(1)
92
+ end
93
+
94
+ it 'should generate a schema class for my_schema_with_circular_reference' do
95
+ generated_path = files.select { |f| f =~ /my_schema_with_circular_reference/ }.first
96
+ expected_path = expected_files.select { |f| f =~ /my_schema_with_circular_reference/ }.first
97
+
98
+ expect(File.read(generated_path)).to eq(File.read(expected_path))
99
+ end
100
+ end
101
+
76
102
  context 'with a Producers Schema and a Key' do
77
103
  before(:each) do
78
104
  Deimos.configure do
@@ -3,28 +3,6 @@
3
3
  # This file is autogenerated by Deimos, Do NOT modify
4
4
  module Schemas
5
5
  ### Secondary Schema Classes ###
6
- # Autogenerated Schema for Enum at com.my-namespace.AnEnum
7
- class AnEnum < Deimos::SchemaClass::Enum
8
- # @return ['sym1', 'sym2']
9
- attr_accessor :an_enum
10
-
11
- # :nodoc:
12
- def initialize(an_enum)
13
- super
14
- self.an_enum = an_enum
15
- end
16
-
17
- # @override
18
- def symbols
19
- %w(sym1 sym2)
20
- end
21
-
22
- # @override
23
- def to_h
24
- @an_enum
25
- end
26
- end
27
-
28
6
  # Autogenerated Schema for Record at com.my-namespace.ARecord
29
7
  class ARecord < Deimos::SchemaClass::Record
30
8
  ### Attribute Accessors ###
@@ -55,6 +33,28 @@ module Schemas
55
33
  end
56
34
  end
57
35
 
36
+ # Autogenerated Schema for Enum at com.my-namespace.AnEnum
37
+ class AnEnum < Deimos::SchemaClass::Enum
38
+ # @return ['sym1', 'sym2']
39
+ attr_accessor :an_enum
40
+
41
+ # :nodoc:
42
+ def initialize(an_enum)
43
+ super
44
+ self.an_enum = an_enum
45
+ end
46
+
47
+ # @override
48
+ def symbols
49
+ %w(sym1 sym2)
50
+ end
51
+
52
+ # @override
53
+ def to_h
54
+ @an_enum
55
+ end
56
+ end
57
+
58
58
  ### Primary Schema Class ###
59
59
  # Autogenerated Schema for Record at com.my-namespace.Generated
60
60
  class Generated < Deimos::SchemaClass::Record
@@ -0,0 +1,74 @@
1
+ # frozen_string_literal: true
2
+
3
+ # This file is autogenerated by Deimos, Do NOT modify
4
+ module Schemas
5
+ ### Secondary Schema Classes ###
6
+ # Autogenerated Schema for Record at com.my-namespace.Property
7
+ class Property < Deimos::SchemaClass::Record
8
+ ### Attribute Accessors ###
9
+ # @param value [Boolean, Integer, Integer, Float, Float, String, Array<Property>, Hash<String, Property>]
10
+ attr_accessor :property
11
+
12
+ # @override
13
+ def initialize(property: nil)
14
+ super
15
+ self.property = property
16
+ end
17
+
18
+ # @override
19
+ def schema
20
+ 'Property'
21
+ end
22
+
23
+ # @override
24
+ def namespace
25
+ 'com.my-namespace'
26
+ end
27
+
28
+ # @override
29
+ def to_h
30
+ {
31
+ 'property' => @property
32
+ }
33
+ end
34
+ end
35
+
36
+ ### Primary Schema Class ###
37
+ # Autogenerated Schema for Record at com.my-namespace.MySchemaWithCircularReference
38
+ class MySchemaWithCircularReference < Deimos::SchemaClass::Record
39
+ ### Attribute Readers ###
40
+ # @return [Hash<String, Property>]
41
+ attr_reader :properties
42
+
43
+ ### Attribute Writers ###
44
+ # @param values [Hash<String, Property>]
45
+ def properties=(values)
46
+ @properties = values.transform_values do |value|
47
+ Property.initialize_from_value(value)
48
+ end
49
+ end
50
+
51
+ # @override
52
+ def initialize(properties: {})
53
+ super
54
+ self.properties = properties
55
+ end
56
+
57
+ # @override
58
+ def schema
59
+ 'MySchemaWithCircularReference'
60
+ end
61
+
62
+ # @override
63
+ def namespace
64
+ 'com.my-namespace'
65
+ end
66
+
67
+ # @override
68
+ def to_h
69
+ {
70
+ 'properties' => @properties.transform_values { |v| v&.to_h }
71
+ }
72
+ end
73
+ end
74
+ end
@@ -77,6 +77,28 @@ module Schemas
77
77
  end
78
78
  end
79
79
 
80
+ # Autogenerated Schema for Enum at com.my-namespace.YetAnotherEnum
81
+ class YetAnotherEnum < Deimos::SchemaClass::Enum
82
+ # @return ['sym5', 'sym6']
83
+ attr_accessor :yet_another_enum
84
+
85
+ # :nodoc:
86
+ def initialize(yet_another_enum)
87
+ super
88
+ self.yet_another_enum = yet_another_enum
89
+ end
90
+
91
+ # @override
92
+ def symbols
93
+ %w(sym5 sym6)
94
+ end
95
+
96
+ # @override
97
+ def to_h
98
+ @yet_another_enum
99
+ end
100
+ end
101
+
80
102
  ### Primary Schema Class ###
81
103
  # Autogenerated Schema for Record at com.my-namespace.MySchemaWithComplexTypes
82
104
  class MySchemaWithComplexTypes < Deimos::SchemaClass::Record
@@ -93,6 +115,8 @@ module Schemas
93
115
  attr_reader :some_enum_array
94
116
  # @return [nil, AnotherEnum]
95
117
  attr_reader :some_optional_enum
118
+ # @return [YetAnotherEnum]
119
+ attr_reader :some_enum_with_default
96
120
 
97
121
  ### Attribute Accessors ###
98
122
  # @param value [String]
@@ -145,6 +169,11 @@ module Schemas
145
169
  @some_optional_enum = AnotherEnum.initialize_from_value(value)
146
170
  end
147
171
 
172
+ # @param value [YetAnotherEnum]
173
+ def some_enum_with_default=(value)
174
+ @some_enum_with_default = YetAnotherEnum.initialize_from_value(value)
175
+ end
176
+
148
177
  # @override
149
178
  def initialize(test_id: nil,
150
179
  test_float: nil,
@@ -157,7 +186,8 @@ module Schemas
157
186
  some_record_array: nil,
158
187
  some_record_map: nil,
159
188
  some_enum_array: nil,
160
- some_optional_enum: nil)
189
+ some_optional_enum: nil,
190
+ some_enum_with_default: "sym6")
161
191
  super
162
192
  self.test_id = test_id
163
193
  self.test_float = test_float
@@ -171,6 +201,7 @@ module Schemas
171
201
  self.some_record_map = some_record_map
172
202
  self.some_enum_array = some_enum_array
173
203
  self.some_optional_enum = some_optional_enum
204
+ self.some_enum_with_default = some_enum_with_default
174
205
  end
175
206
 
176
207
  # @override
@@ -197,7 +228,8 @@ module Schemas
197
228
  'some_record_array' => @some_record_array.map { |v| v&.to_h },
198
229
  'some_record_map' => @some_record_map.transform_values { |v| v&.to_h },
199
230
  'some_enum_array' => @some_enum_array.map { |v| v&.to_h },
200
- 'some_optional_enum' => @some_optional_enum&.to_h
231
+ 'some_optional_enum' => @some_optional_enum&.to_h,
232
+ 'some_enum_with_default' => @some_enum_with_default&.to_h
201
233
  }
202
234
  end
203
235
  end
@@ -0,0 +1,39 @@
1
+ {
2
+ "namespace": "com.my-namespace",
3
+ "name": "MySchemaWithCircularReference",
4
+ "type": "record",
5
+ "fields": [
6
+ {
7
+ "default": {},
8
+ "name": "properties",
9
+ "type": {
10
+ "type": "map",
11
+ "values": {
12
+ "fields": [
13
+ {
14
+ "name": "property",
15
+ "type": [
16
+ "boolean",
17
+ "int",
18
+ "long",
19
+ "float",
20
+ "double",
21
+ "string",
22
+ {
23
+ "items": "Property",
24
+ "type": "array"
25
+ },
26
+ {
27
+ "type": "map",
28
+ "values": "Property"
29
+ }
30
+ ]
31
+ }
32
+ ],
33
+ "name": "Property",
34
+ "type": "record"
35
+ }
36
+ }
37
+ }
38
+ ]
39
+ }
@@ -101,6 +101,15 @@
101
101
  "symbols": ["sym3", "sym4"]
102
102
  }
103
103
  ]
104
+ },
105
+ {
106
+ "name": "some_enum_with_default",
107
+ "default": "sym6",
108
+ "type": {
109
+ "type": "enum",
110
+ "name": "YetAnotherEnum",
111
+ "symbols": ["sym5", "sym6"]
112
+ }
104
113
  }
105
114
  ]
106
115
  }
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: deimos-ruby
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.13.0
4
+ version: 1.13.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Daniel Orner
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-03-30 00:00:00.000000000 Z
11
+ date: 2022-05-10 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: avro_turf
@@ -463,6 +463,7 @@ files:
463
463
  - spec/consumer_spec.rb
464
464
  - spec/deimos_spec.rb
465
465
  - spec/generators/active_record_generator_spec.rb
466
+ - spec/generators/schema_class/my_schema_with_circular_reference_spec.rb
466
467
  - spec/generators/schema_class/my_schema_with_complex_types_spec.rb
467
468
  - spec/generators/schema_class_generator_spec.rb
468
469
  - spec/handlers/my_batch_consumer.rb
@@ -484,12 +485,14 @@ files:
484
485
  - spec/schema_classes/my_nested_schema.rb
485
486
  - spec/schema_classes/my_schema.rb
486
487
  - spec/schema_classes/my_schema_key.rb
488
+ - spec/schema_classes/my_schema_with_circular_reference.rb
487
489
  - spec/schema_classes/my_schema_with_complex_types.rb
488
490
  - spec/schemas/com/my-namespace/Generated.avsc
489
491
  - spec/schemas/com/my-namespace/MyNestedSchema.avsc
490
492
  - spec/schemas/com/my-namespace/MySchema.avsc
491
493
  - spec/schemas/com/my-namespace/MySchemaCompound_key.avsc
492
494
  - spec/schemas/com/my-namespace/MySchemaWithBooleans.avsc
495
+ - spec/schemas/com/my-namespace/MySchemaWithCircularReference.avsc
493
496
  - spec/schemas/com/my-namespace/MySchemaWithComplexTypes.avsc
494
497
  - spec/schemas/com/my-namespace/MySchemaWithDateTimes.avsc
495
498
  - spec/schemas/com/my-namespace/MySchemaWithId.avsc
@@ -554,6 +557,7 @@ test_files:
554
557
  - spec/consumer_spec.rb
555
558
  - spec/deimos_spec.rb
556
559
  - spec/generators/active_record_generator_spec.rb
560
+ - spec/generators/schema_class/my_schema_with_circular_reference_spec.rb
557
561
  - spec/generators/schema_class/my_schema_with_complex_types_spec.rb
558
562
  - spec/generators/schema_class_generator_spec.rb
559
563
  - spec/handlers/my_batch_consumer.rb
@@ -575,12 +579,14 @@ test_files:
575
579
  - spec/schema_classes/my_nested_schema.rb
576
580
  - spec/schema_classes/my_schema.rb
577
581
  - spec/schema_classes/my_schema_key.rb
582
+ - spec/schema_classes/my_schema_with_circular_reference.rb
578
583
  - spec/schema_classes/my_schema_with_complex_types.rb
579
584
  - spec/schemas/com/my-namespace/Generated.avsc
580
585
  - spec/schemas/com/my-namespace/MyNestedSchema.avsc
581
586
  - spec/schemas/com/my-namespace/MySchema.avsc
582
587
  - spec/schemas/com/my-namespace/MySchemaCompound_key.avsc
583
588
  - spec/schemas/com/my-namespace/MySchemaWithBooleans.avsc
589
+ - spec/schemas/com/my-namespace/MySchemaWithCircularReference.avsc
584
590
  - spec/schemas/com/my-namespace/MySchemaWithComplexTypes.avsc
585
591
  - spec/schemas/com/my-namespace/MySchemaWithDateTimes.avsc
586
592
  - spec/schemas/com/my-namespace/MySchemaWithId.avsc