avromatic 0.9.0.rc4 → 0.9.0.rc6
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 +4 -0
- data/avromatic.gemspec +1 -1
- data/lib/avromatic/model/attributes.rb +19 -1
- data/lib/avromatic/model_registry.rb +1 -0
- data/lib/avromatic/version.rb +1 -1
- metadata +6 -6
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: ba5443f9bd3883ce2b78d8a27782069b8b6f9387
|
4
|
+
data.tar.gz: 010950770be1bea00cc8aa4143e8124667d00379
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 353f84a00f41772c41d4b9889f3610750b66364151d051ab315429f3f5b77a353376f70cd2101c896e043b486a4df22f20e7467158ef29eb5c47d72d9109444b
|
7
|
+
data.tar.gz: f86f38a32fad99f98f8c697119cc0b4c4b2a8f4e76264b6e8755d8a148b2ee3a3076d19b51c16ca5fefaeb07ff450c3e1b1376dbd3836719648bd353699689dd
|
data/CHANGELOG.md
CHANGED
@@ -5,6 +5,10 @@
|
|
5
5
|
- Allow nested models to be referenced and reused.
|
6
6
|
- Fix the serialization of nested complex types.
|
7
7
|
- Add support for recursive models.
|
8
|
+
- Allow required array and map fields to be empty. Only nil values for required
|
9
|
+
array and map fields are now considered invalid.
|
10
|
+
- Validate nested models. This does not apply to nested models embedded
|
11
|
+
within other complex types (array, map, and union).
|
8
12
|
|
9
13
|
## v0.8.0
|
10
14
|
- Add support for logical types. Currently this requires using the
|
data/avromatic.gemspec
CHANGED
@@ -34,6 +34,6 @@ Gem::Specification.new do |spec|
|
|
34
34
|
# For FakeSchemaRegistryServer
|
35
35
|
spec.add_development_dependency 'sinatra'
|
36
36
|
spec.add_development_dependency 'salsify_rubocop', '~> 0.42.0'
|
37
|
-
spec.add_development_dependency 'overcommit'
|
37
|
+
spec.add_development_dependency 'overcommit', '0.35.0'
|
38
38
|
spec.add_development_dependency 'appraisal'
|
39
39
|
end
|
@@ -77,14 +77,32 @@ module Avromatic
|
|
77
77
|
inclusion: { in: Set.new(field.type.symbols.map(&:freeze)).freeze })
|
78
78
|
when :fixed
|
79
79
|
validates(field.name, length: { is: field.type.size })
|
80
|
+
when :record
|
81
|
+
validate_record(field.name)
|
80
82
|
end
|
81
83
|
|
82
84
|
add_required_validation(field)
|
83
85
|
end
|
84
86
|
|
87
|
+
def validate_record(field_name)
|
88
|
+
validate do |instance|
|
89
|
+
record = instance.send(field_name)
|
90
|
+
if record && record.invalid?
|
91
|
+
record.errors.each do |key, message|
|
92
|
+
errors.add(field_name.to_sym, "invalid: #{key} #{message}")
|
93
|
+
end
|
94
|
+
end
|
95
|
+
end
|
96
|
+
end
|
97
|
+
|
85
98
|
def add_required_validation(field)
|
86
99
|
if required?(field) && field.default == :no_default
|
87
|
-
|
100
|
+
case field.type.type_sym
|
101
|
+
when :array, :map, :boolean
|
102
|
+
validates(field.name, exclusion: { in: [nil], message: "can't be nil" })
|
103
|
+
else
|
104
|
+
validates(field.name, presence: true)
|
105
|
+
end
|
88
106
|
end
|
89
107
|
end
|
90
108
|
|
@@ -19,6 +19,7 @@ module Avromatic
|
|
19
19
|
raise 'models with a key schema are not supported' if model.key_avro_schema
|
20
20
|
name = model.avro_schema.fullname
|
21
21
|
name = remove_prefix(name)
|
22
|
+
raise "'#{name}' has already been registered" if registered?(name)
|
22
23
|
@hash[name] = model
|
23
24
|
end
|
24
25
|
|
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.rc6
|
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-26 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: avro
|
@@ -196,16 +196,16 @@ dependencies:
|
|
196
196
|
name: overcommit
|
197
197
|
requirement: !ruby/object:Gem::Requirement
|
198
198
|
requirements:
|
199
|
-
- -
|
199
|
+
- - '='
|
200
200
|
- !ruby/object:Gem::Version
|
201
|
-
version:
|
201
|
+
version: 0.35.0
|
202
202
|
type: :development
|
203
203
|
prerelease: false
|
204
204
|
version_requirements: !ruby/object:Gem::Requirement
|
205
205
|
requirements:
|
206
|
-
- -
|
206
|
+
- - '='
|
207
207
|
- !ruby/object:Gem::Version
|
208
|
-
version:
|
208
|
+
version: 0.35.0
|
209
209
|
- !ruby/object:Gem::Dependency
|
210
210
|
name: appraisal
|
211
211
|
requirement: !ruby/object:Gem::Requirement
|