avromatic 2.2.1 → 2.2.2
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/lib/avromatic.rb +1 -3
- data/lib/avromatic/model/nested_models.rb +13 -2
- data/lib/avromatic/model/types/abstract_type.rb +7 -0
- data/lib/avromatic/model/types/array_type.rb +4 -0
- data/lib/avromatic/model/types/boolean_type.rb +4 -0
- data/lib/avromatic/model/types/custom_type.rb +4 -0
- data/lib/avromatic/model/types/date_type.rb +4 -0
- data/lib/avromatic/model/types/enum_type.rb +4 -0
- data/lib/avromatic/model/types/fixed_type.rb +4 -0
- data/lib/avromatic/model/types/float_type.rb +4 -0
- data/lib/avromatic/model/types/integer_type.rb +4 -0
- data/lib/avromatic/model/types/map_type.rb +5 -0
- data/lib/avromatic/model/types/null_type.rb +4 -0
- data/lib/avromatic/model/types/record_type.rb +4 -0
- data/lib/avromatic/model/types/string_type.rb +5 -1
- data/lib/avromatic/model/types/timestamp_micros_type.rb +3 -0
- data/lib/avromatic/model/types/timestamp_millis_type.rb +3 -0
- data/lib/avromatic/model/types/union_type.rb +4 -0
- data/lib/avromatic/model_registry.rb +2 -1
- data/lib/avromatic/rspec.rb +6 -1
- data/lib/avromatic/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: cba28133aa9a1a1ce5bb9a03c54fc4aa01f90d6dd3a72b98d74e5eb47276925e
|
4
|
+
data.tar.gz: 4fc8e33b860c6213fdda238946799164f8f52655b8cd3d5995f2c095e63aa2e1
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a027c37208e834dee9772ea0fc2cfdd0f0a65699426e4e89b00e32268f3938a2842d1b4101fdd50f04f0b61d151f8ea9a2dd08bba168875b47b39636053eebe6
|
7
|
+
data.tar.gz: 7568eb10634ab6dc9e80236c8cedccd18a7259858c4a4834797e91f3349f43cf34d0dec81b5cf3fec4c2cb9c8400002d4066c9240a27eca6d0751f470a1faffa
|
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,9 @@
|
|
1
1
|
# avromatic changelog
|
2
2
|
|
3
|
+
## v2.2.2
|
4
|
+
- Fix missing models in the model registry when in development by loading the nested models of eager loaded models.
|
5
|
+
- Fake schema registry support for stubbing URLs with usernames and passwords.
|
6
|
+
|
3
7
|
## v2.2.1
|
4
8
|
- Avoid allocating default empty hash in `Avromatic::IO::DatumReader.read_data`
|
5
9
|
|
data/lib/avromatic.rb
CHANGED
@@ -85,9 +85,7 @@ module Avromatic
|
|
85
85
|
end
|
86
86
|
|
87
87
|
def self.eager_load_models!
|
88
|
-
|
89
|
-
nested_models.ensure_registered_model(model_name.constantize)
|
90
|
-
end
|
88
|
+
@eager_load_model_names&.each { |model_name| model_name.constantize.register! }
|
91
89
|
end
|
92
90
|
private_class_method :eager_load_models!
|
93
91
|
end
|
@@ -12,10 +12,21 @@ module Avromatic
|
|
12
12
|
module ClassMethods
|
13
13
|
# Register this model if it can be used as a nested model.
|
14
14
|
def register!
|
15
|
-
|
16
|
-
|
15
|
+
return unless key_avro_schema.nil? && value_avro_schema.type_sym == :record
|
16
|
+
|
17
|
+
roots = [self]
|
18
|
+
until roots.empty?
|
19
|
+
model = roots.shift
|
20
|
+
next if nested_models.registered?(model)
|
21
|
+
|
22
|
+
nested_models.register(model)
|
23
|
+
roots.concat(model.referenced_model_classes)
|
17
24
|
end
|
18
25
|
end
|
26
|
+
|
27
|
+
def referenced_model_classes
|
28
|
+
attribute_definitions.values.flat_map { |definition| definition.type.referenced_model_classes }.freeze
|
29
|
+
end
|
19
30
|
end
|
20
31
|
end
|
21
32
|
end
|
@@ -4,6 +4,9 @@ module Avromatic
|
|
4
4
|
module Model
|
5
5
|
module Types
|
6
6
|
class AbstractType
|
7
|
+
EMPTY_ARRAY = [].freeze
|
8
|
+
private_constant :EMPTY_ARRAY
|
9
|
+
|
7
10
|
def value_classes
|
8
11
|
raise "#{__method__} must be overridden by #{self.class.name}"
|
9
12
|
end
|
@@ -31,6 +34,10 @@ module Avromatic
|
|
31
34
|
def serialize(_value, **)
|
32
35
|
raise "#{__method__} must be overridden by #{self.class.name}"
|
33
36
|
end
|
37
|
+
|
38
|
+
def referenced_model_classes
|
39
|
+
raise "#{__method__} must be overridden by #{self.class.name}"
|
40
|
+
end
|
34
41
|
end
|
35
42
|
end
|
36
43
|
end
|
@@ -5,7 +5,7 @@ require 'avromatic/model/types/abstract_type'
|
|
5
5
|
module Avromatic
|
6
6
|
module Model
|
7
7
|
module Types
|
8
|
-
class StringType
|
8
|
+
class StringType < AbstractType
|
9
9
|
VALUE_CLASSES = [::String].freeze
|
10
10
|
INPUT_CLASSES = [::String, ::Symbol].freeze
|
11
11
|
|
@@ -42,6 +42,10 @@ module Avromatic
|
|
42
42
|
def serialize(value, **)
|
43
43
|
value
|
44
44
|
end
|
45
|
+
|
46
|
+
def referenced_model_classes
|
47
|
+
EMPTY_ARRAY
|
48
|
+
end
|
45
49
|
end
|
46
50
|
end
|
47
51
|
end
|
data/lib/avromatic/rspec.rb
CHANGED
@@ -1,11 +1,16 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
+
require 'uri'
|
3
4
|
require 'webmock/rspec'
|
4
5
|
require 'avro_schema_registry/test/fake_server'
|
5
6
|
|
6
7
|
RSpec.configure do |config|
|
7
8
|
config.before(:each) do
|
8
|
-
WebMock
|
9
|
+
# Strip the username/password from the URL so WebMock can match the URL
|
10
|
+
registry_uri = URI(Avromatic.registry_url)
|
11
|
+
registry_uri.userinfo = ''
|
12
|
+
|
13
|
+
WebMock.stub_request(:any, /^#{registry_uri}/).to_rack(AvroSchemaRegistry::FakeServer)
|
9
14
|
AvroSchemaRegistry::FakeServer.clear
|
10
15
|
Avromatic.build_messaging!
|
11
16
|
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: 2.2.
|
4
|
+
version: 2.2.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Salsify Engineering
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2020-01-03 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activemodel
|