avromatic 3.0.0 → 3.0.1
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 +4 -4
- data/CHANGELOG.md +5 -0
- data/lib/avromatic/model/nested_models.rb +4 -2
- data/lib/avromatic/model_registry.rb +11 -2
- data/lib/avromatic/version.rb +1 -1
- metadata +6 -6
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: d4938e400e426cf06497e5819b1f92c9c3f12920ada5ed999a1a826bd19c7efb
|
4
|
+
data.tar.gz: e37322f05ec5adaff55e28bc8e15a2e2164dc3d8575fb8ed0dad6e5b283fa440
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 258766a91f94e209f18e0f2060bb2590d606bb973b93bd702a2acc45535d2591e7688b5d14695c004621a5eddf8d328528518447ccf26521c10d2fb3821dfdb6
|
7
|
+
data.tar.gz: fd1aea43406300f106aba81a9be6212e50d4e6bab68b4a3a25bb5f7aafaa01400bb1712bfe7a9a4206a6dc8fa7bf31491988bd43a69755b2582f6c44d26603ba
|
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,10 @@
|
|
1
1
|
# avromatic changelog
|
2
2
|
|
3
|
+
## 3.0.1
|
4
|
+
- Raise an error when registering a nested model that has already been auto-generated.
|
5
|
+
This avoids hard to troubleshoot coercion errors when instantiating models and fixes
|
6
|
+
a regression introduced in Avromatic 2.2.2.
|
7
|
+
|
3
8
|
## 3.0.0
|
4
9
|
- Drop support for Ruby 2.4.
|
5
10
|
- Add support for Ruby 3.0.
|
@@ -14,12 +14,14 @@ module Avromatic
|
|
14
14
|
def register!
|
15
15
|
return unless key_avro_schema.nil? && value_avro_schema.type_sym == :record
|
16
16
|
|
17
|
+
processed = Set.new
|
17
18
|
roots = [self]
|
18
19
|
until roots.empty?
|
19
20
|
model = roots.shift
|
20
|
-
|
21
|
+
# Avoid any nested model dependency cycles by ignoring already processed models
|
22
|
+
next unless processed.add?(model)
|
21
23
|
|
22
|
-
nested_models.
|
24
|
+
nested_models.ensure_registered_model(model)
|
23
25
|
roots.concat(model.referenced_model_classes)
|
24
26
|
end
|
25
27
|
end
|
@@ -42,8 +42,11 @@ module Avromatic
|
|
42
42
|
def ensure_registered_model(model)
|
43
43
|
name = model_fullname(model)
|
44
44
|
if registered?(name)
|
45
|
-
|
46
|
-
|
45
|
+
existing_model = fetch(name)
|
46
|
+
unless existing_model.equal?(model)
|
47
|
+
raise "Attempted to replace existing Avromatic model #{model_debug_name(existing_model)} with new model " \
|
48
|
+
"#{model_debug_name(model)} as '#{name}'. Perhaps '#{model_debug_name(model)}' needs to be eager loaded " \
|
49
|
+
'via the Avromatic eager_load_models setting?'
|
47
50
|
end
|
48
51
|
else
|
49
52
|
register(model)
|
@@ -65,5 +68,11 @@ module Avromatic
|
|
65
68
|
|
66
69
|
value.start_with?('.') ? value.from(1) : value
|
67
70
|
end
|
71
|
+
|
72
|
+
private
|
73
|
+
|
74
|
+
def model_debug_name(model)
|
75
|
+
model.name || model.to_s
|
76
|
+
end
|
68
77
|
end
|
69
78
|
end
|
data/lib/avromatic/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: avromatic
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 3.0.
|
4
|
+
version: 3.0.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Salsify Engineering
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2021-
|
11
|
+
date: 2021-06-10 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activemodel
|
@@ -346,7 +346,7 @@ homepage: https://github.com/salsify/avromatic.git
|
|
346
346
|
licenses:
|
347
347
|
- MIT
|
348
348
|
metadata: {}
|
349
|
-
post_install_message:
|
349
|
+
post_install_message:
|
350
350
|
rdoc_options: []
|
351
351
|
require_paths:
|
352
352
|
- lib
|
@@ -361,8 +361,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
361
361
|
- !ruby/object:Gem::Version
|
362
362
|
version: '0'
|
363
363
|
requirements: []
|
364
|
-
rubygems_version: 3.0.
|
365
|
-
signing_key:
|
364
|
+
rubygems_version: 3.0.8
|
365
|
+
signing_key:
|
366
366
|
specification_version: 4
|
367
367
|
summary: Generate Ruby models from Avro schemas
|
368
368
|
test_files: []
|