avromatic 0.9.0.rc2 → 0.9.0.rc3
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 +1 -0
- data/lib/avromatic/model/attributes.rb +2 -0
- data/lib/avromatic/model/nested_models.rb +10 -3
- data/lib/avromatic/model_registry.rb +4 -4
- data/lib/avromatic/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: d494566e3d9e224fc731b7aacbfa179d53da3079
|
4
|
+
data.tar.gz: bd8c57dd841fac2aa38d3b577116738f11ab59ee
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: b184df456bdd953ca9707304a098db1b739e55616e773dcddedb6b2e60a73fae937c2e91dac0649b3e523f06b73164116de4ff782e17e8a5b093366baed08289
|
7
|
+
data.tar.gz: 4d5021c10406881dfaf32d5392eef6fc87cd3c09667bb5a11e967717ee907b00d8456580810d0b362d7d63a6470c10c93b084e07dcb545969b5f3b7f086c6953
|
data/CHANGELOG.md
CHANGED
@@ -4,6 +4,7 @@
|
|
4
4
|
- Experimental: Add support for more than one non-null type in a union.
|
5
5
|
- Allow nested models to be referenced and reused.
|
6
6
|
- Fix the serialization of nested complex types.
|
7
|
+
- Add support for recursive models.
|
7
8
|
|
8
9
|
## v0.8.0
|
9
10
|
- Add support for logical types. Currently this requires using the
|
@@ -9,18 +9,25 @@ module Avromatic
|
|
9
9
|
|
10
10
|
module ClassMethods
|
11
11
|
def build_nested_model(schema)
|
12
|
-
fullname = schema.fullname
|
12
|
+
fullname = nested_models.remove_prefix(schema.fullname)
|
13
13
|
|
14
14
|
if nested_models.registered?(fullname)
|
15
15
|
nested_models[fullname]
|
16
16
|
else
|
17
17
|
nested_model = Avromatic::Model.model(schema: schema,
|
18
|
-
nested_models: nested_models
|
18
|
+
nested_models: nested_models,
|
19
|
+
register: true)
|
19
20
|
# Register the generated model with Axiom to prevent it being
|
20
21
|
# treated as a BasicObject.
|
21
22
|
# See https://github.com/solnic/virtus/issues/284#issuecomment-56405137
|
22
23
|
Axiom::Types::Object.new { primitive(nested_model) }
|
23
|
-
|
24
|
+
end
|
25
|
+
end
|
26
|
+
|
27
|
+
# Register this model if it can be used as a nested model.
|
28
|
+
def register!
|
29
|
+
if key_avro_schema.nil? && value_avro_schema.type_sym == :record
|
30
|
+
nested_models.register(self)
|
24
31
|
end
|
25
32
|
end
|
26
33
|
end
|
@@ -18,7 +18,7 @@ module Avromatic
|
|
18
18
|
def register(model)
|
19
19
|
raise 'models with a key schema are not supported' if model.key_avro_schema
|
20
20
|
name = model.avro_schema.fullname
|
21
|
-
name = remove_prefix(name)
|
21
|
+
name = remove_prefix(name)
|
22
22
|
@hash[name] = model
|
23
23
|
end
|
24
24
|
|
@@ -26,13 +26,13 @@ module Avromatic
|
|
26
26
|
@hash.key?(fullname)
|
27
27
|
end
|
28
28
|
|
29
|
-
private
|
30
|
-
|
31
29
|
def remove_prefix(name)
|
30
|
+
return name if @prefix.nil?
|
31
|
+
|
32
32
|
value =
|
33
33
|
case @prefix
|
34
34
|
when String
|
35
|
-
name.
|
35
|
+
name.start_with?(@prefix) ? name.from(@prefix.length) : name
|
36
36
|
when Regexp
|
37
37
|
name.sub(@prefix, '')
|
38
38
|
else
|
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: 0.9.0.
|
4
|
+
version: 0.9.0.rc3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Salsify Engineering
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-09-
|
11
|
+
date: 2016-09-16 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: avro
|