avromatic 0.9.0 → 0.10.0.rc0
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/README.md +12 -17
- data/lib/avromatic.rb +6 -1
- data/lib/avromatic/model_registry.rb +4 -0
- data/lib/avromatic/railtie.rb +4 -0
- data/lib/avromatic/version.rb +1 -1
- metadata +4 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 9363333d113fdde131539f8b2d49aa36570bac26
|
4
|
+
data.tar.gz: 22abde6607fa1214c5a29f109d3cedbbe0573ba6
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 13f164b073113a5abf9287b4cc409a1588b6e328b2f079626bc83ffb768b9f8db6fd761f8bfb648f365bedc7b36a683e4d755e84558a9bb7a13236937a08bffc
|
7
|
+
data.tar.gz: edb4c66c1dbb1d1c22a0b24064b0ed0eae890c7d0a787f27e643a3010ed4f590c012c740e2c0b918919eaa071a14482933c4c1539ac36082c42d9ae1006adde5
|
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,9 @@
|
|
1
1
|
# avromatic changelog
|
2
2
|
|
3
|
+
## v0.10.0 (unreleased)
|
4
|
+
- Add `Avromatic.on_initialize` proc that is called in Rails applications after
|
5
|
+
the initializers run and on code reloading.
|
6
|
+
|
3
7
|
## v0.9.0
|
4
8
|
- Experimental: Add support for more than one non-null type in a union.
|
5
9
|
- Allow nested models to be referenced and reused.
|
data/README.md
CHANGED
@@ -162,22 +162,16 @@ Avromatic::Model.model(schema_name, :my_model
|
|
162
162
|
nested_models: ModelRegistry.new)
|
163
163
|
```
|
164
164
|
|
165
|
-
|
166
|
-
|
165
|
+
Only models without a key schema can be used as nested models. When a model is
|
166
|
+
generated with just a value schema then it is automatically registered so that
|
167
|
+
it can be used as a nested model.
|
167
168
|
|
168
|
-
|
169
|
-
|
170
|
-
include Avromatic::Model.build(schema_name: 'useful_subrecord')
|
171
|
-
|
172
|
-
def do_something_custom
|
173
|
-
...
|
174
|
-
end
|
175
|
-
end
|
176
|
-
Avromatic.nested_models.register(UsefulSubrecord)
|
177
|
-
```
|
169
|
+
To extend a model that will be used as a nested model, you must ensure that it
|
170
|
+
is defined, which will register it, prior it being referenced by another model.
|
178
171
|
|
179
|
-
With Rails, it may be necessary to
|
180
|
-
|
172
|
+
With Rails for example, it may be necessary to reference in an initializer
|
173
|
+
models that are extended and will be used as nested models so that classes load
|
174
|
+
in the correct order.
|
181
175
|
|
182
176
|
#### Custom Types
|
183
177
|
|
@@ -315,15 +309,16 @@ The following validations are supported:
|
|
315
309
|
|
316
310
|
- The size of the value for a fixed type field.
|
317
311
|
- The value for an enum type field is in the declared set of values.
|
318
|
-
- Presence of a value for required fields.
|
312
|
+
- Presence of a value for required fields. Empty arrays and maps are considered
|
313
|
+
valid for required fields.
|
314
|
+
- Validity of nested records, including records embedded in array, maps, and
|
315
|
+
unions.
|
319
316
|
|
320
317
|
### Unsupported/Future
|
321
318
|
|
322
319
|
The following types/features are not supported for generated models:
|
323
320
|
|
324
321
|
- Custom types for members within a union.
|
325
|
-
- Reused models for nested records: Currently an anonymous model class is
|
326
|
-
generated for each subrecord.
|
327
322
|
|
328
323
|
## Development
|
329
324
|
|
data/lib/avromatic.rb
CHANGED
@@ -7,7 +7,7 @@ require 'avro_turf/messaging'
|
|
7
7
|
module Avromatic
|
8
8
|
class << self
|
9
9
|
attr_accessor :schema_registry, :registry_url, :schema_store, :logger,
|
10
|
-
:messaging, :type_registry, :nested_models
|
10
|
+
:messaging, :type_registry, :nested_models, :on_initialize
|
11
11
|
|
12
12
|
delegate :register_type, to: :type_registry
|
13
13
|
end
|
@@ -39,6 +39,11 @@ module Avromatic
|
|
39
39
|
def self.build_messaging!
|
40
40
|
self.messaging = build_messaging
|
41
41
|
end
|
42
|
+
|
43
|
+
def self.prepare!
|
44
|
+
nested_models.clear
|
45
|
+
on_initialize.call if on_initialize
|
46
|
+
end
|
42
47
|
end
|
43
48
|
|
44
49
|
require 'avromatic/railtie' if defined?(Rails)
|
data/lib/avromatic/railtie.rb
CHANGED
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.
|
4
|
+
version: 0.10.0.rc0
|
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-
|
11
|
+
date: 2016-10-03 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: avro
|
@@ -287,9 +287,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
287
287
|
version: '0'
|
288
288
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
289
289
|
requirements:
|
290
|
-
- - "
|
290
|
+
- - ">"
|
291
291
|
- !ruby/object:Gem::Version
|
292
|
-
version:
|
292
|
+
version: 1.3.1
|
293
293
|
requirements: []
|
294
294
|
rubyforge_project:
|
295
295
|
rubygems_version: 2.4.8
|