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