avromatic 0.17.1 → 0.18.0.rc0

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 5550bf0cf07c7178fee41695fa332666e06cb471
4
- data.tar.gz: f687dd44e2950b2fd0f05417e0cead775eb77f85
3
+ metadata.gz: 87f9dfc66765f2cd2bc52b7391214bbbe4d988fb
4
+ data.tar.gz: 69c50be9646eb962b03e47173dc6ac982d4f13cf
5
5
  SHA512:
6
- metadata.gz: b3cc9796157abbde88c9c1c54ee6b158da087ea64b41a8da156b00bf6fc697247358046bdf53f9b8665aa7b751f171fed3d07bf92b38a4a5e77b9fb5001445c7
7
- data.tar.gz: 65d6c900a70efed3309935966e0618f986850ea94c42b381e3fb8410410d0edf8369c308eb99a8d8e0219b46b3e0cd742a7fc55a15a156123e569ab0f4312267
6
+ metadata.gz: 7cc691fbf191c7b416f6921b3c1f71e2803a773c8c92c4b54f07602557511bd98ff18de01fdcb60bc3c9a2e0b3739ae69de13d164a20a9f2d97d8b5360cb693b
7
+ data.tar.gz: f05dc0e9eada3a419eb6e836bec0ea77d9c65bc0896699fd664c92cf44b95fe76471d045a62fb2d0afc809d7728d64e6c9d3a2d247266cb83deb277c7383c1a4
data/CHANGELOG.md CHANGED
@@ -1,5 +1,9 @@
1
1
  # avromatic changelog
2
2
 
3
+ ## v0.18.0
4
+ - Compatibility with `avro_turf` v0.8.0. `avromatic/test/fake_schema_registry_server`
5
+ is now deprecated in favor of `avromatic/test/fake_confluent_schema_registry_server`.
6
+
3
7
  ## v0.17.1
4
8
  - Correctly namespace Avro errors raised by `Avromatic::IO::DatumReader`.
5
9
 
data/README.md CHANGED
@@ -60,7 +60,7 @@ The configuration options below are required when using a schema registry
60
60
  (see [Confluent Schema Registry](http://docs.confluent.io/2.0.1/schema-registry/docs/intro.html))
61
61
  and the [Messaging API](#messaging-api).
62
62
 
63
- * **schema_registry**: An `AvroTurf::SchemaRegistry` object used to store Avro schemas
63
+ * **schema_registry**: An `AvroTurf::ConfluentSchemaRegistry` object used to store Avro schemas
64
64
  so that they can be referenced by id. Either `schema_registry` or
65
65
  `registry_url` must be configured.
66
66
  * **registry_url**: URL for the schema registry. Either `schema_registry` or
data/avromatic.gemspec CHANGED
@@ -23,7 +23,7 @@ Gem::Specification.new do |spec|
23
23
  spec.add_runtime_dependency 'virtus'
24
24
  spec.add_runtime_dependency 'activesupport'
25
25
  spec.add_runtime_dependency 'activemodel'
26
- spec.add_runtime_dependency 'avro_turf', '>= 0.7.0'
26
+ spec.add_runtime_dependency 'avro_turf', '>= 0.8.0'
27
27
 
28
28
  spec.add_development_dependency 'bundler', '~> 1.11'
29
29
  spec.add_development_dependency 'rake', '~> 10.0'
@@ -35,7 +35,7 @@ module Avromatic
35
35
  delegate :model_key, to: :class
36
36
 
37
37
  # @param *models [generated models] Models to register for decoding.
38
- # @param schema_registry [Avromatic::SchemaRegistryClient] Optional schema
38
+ # @param schema_registry [AvroTurf::ConfluentSchemaRegistry] Optional schema
39
39
  # registry client.
40
40
  # @param registry_url [String] Optional URL for schema registry server.
41
41
  def initialize(*models, schema_registry: nil, registry_url: nil)
@@ -43,7 +43,7 @@ module Avromatic
43
43
  @schema_names_by_id = {}
44
44
  @schema_registry = schema_registry ||
45
45
  Avromatic.schema_registry ||
46
- (registry_url && AvroTurf::SchemaRegistry.new(registry_url, logger: Avromatic.logger)) ||
46
+ (registry_url && AvroTurf::ConfluentSchemaRegistry.new(registry_url, logger: Avromatic.logger)) ||
47
47
  Avromatic.build_schema_registry
48
48
  end
49
49
 
@@ -3,7 +3,7 @@ require 'avromatic/test/fake_schema_registry_server'
3
3
 
4
4
  RSpec.configure do |config|
5
5
  config.before(:each) do
6
- WebMock.stub_request(:any, /^#{Avromatic.registry_url}/).to_rack(FakeSchemaRegistryServer)
7
- FakeSchemaRegistryServer.clear
6
+ WebMock.stub_request(:any, /^#{Avromatic.registry_url}/).to_rack(FakeConfluentSchemaRegistryServer)
7
+ FakeConfluentSchemaRegistryServer.clear
8
8
  end
9
9
  end
@@ -1,5 +1,5 @@
1
1
  require 'avro_turf'
2
- require 'avro_turf/schema_registry'
2
+ require 'avro_turf/confluent_schema_registry'
3
3
 
4
4
  module Avromatic
5
5
  module CacheableSchemaRegistration
@@ -32,4 +32,4 @@ module Avromatic
32
32
  end
33
33
  end
34
34
 
35
- AvroTurf::SchemaRegistry.prepend(Avromatic::CacheableSchemaRegistration)
35
+ AvroTurf::ConfluentSchemaRegistry.prepend(Avromatic::CacheableSchemaRegistration)
@@ -0,0 +1,24 @@
1
+ require 'avro_turf/test/fake_confluent_schema_registry_server'
2
+
3
+ # Add support for endpoint to lookup subject schema id by fingerprint.
4
+ FakeConfluentSchemaRegistryServer.class_eval do
5
+ SCHEMA_NOT_FOUND = FakeConfluentSchemaRegistryServer::SCHEMA_NOT_FOUND
6
+ SCHEMAS = FakeConfluentSchemaRegistryServer::SCHEMAS
7
+ SUBJECTS = FakeConfluentSchemaRegistryServer::SUBJECTS
8
+
9
+ get '/subjects/:subject/fingerprints/:fingerprint' do
10
+ subject = params[:subject]
11
+ halt(404, SCHEMA_NOT_FOUND) unless SUBJECTS.key?(subject)
12
+
13
+ fingerprint = params[:fingerprint]
14
+ fingerprint = fingerprint.to_i.to_s(16) if /^\d+$/ =~ fingerprint
15
+
16
+ schema_id = SCHEMAS.find_index do |schema|
17
+ Avro::Schema.parse(schema).sha256_fingerprint.to_s(16) == fingerprint
18
+ end
19
+
20
+ halt(404, SCHEMA_NOT_FOUND) unless schema_id && SUBJECTS[subject].include?(schema_id)
21
+
22
+ { id: schema_id }.to_json
23
+ end
24
+ end
@@ -1,24 +1,6 @@
1
+ require 'avromatic/test/fake_confluent_schema_registry_server'
1
2
  require 'avro_turf/test/fake_schema_registry_server'
2
3
 
3
- # Add support for endpoint to lookup subject schema id by fingerprint.
4
- FakeSchemaRegistryServer.class_eval do
5
- SCHEMA_NOT_FOUND = FakeSchemaRegistryServer::SCHEMA_NOT_FOUND
6
- SCHEMAS = FakeSchemaRegistryServer::SCHEMAS
7
- SUBJECTS = FakeSchemaRegistryServer::SUBJECTS
8
-
9
- get '/subjects/:subject/fingerprints/:fingerprint' do
10
- subject = params[:subject]
11
- halt(404, SCHEMA_NOT_FOUND) unless SUBJECTS.key?(subject)
12
-
13
- fingerprint = params[:fingerprint]
14
- fingerprint = fingerprint.to_i.to_s(16) if /^\d+$/ =~ fingerprint
15
-
16
- schema_id = SCHEMAS.find_index do |schema|
17
- Avro::Schema.parse(schema).sha256_fingerprint.to_s(16) == fingerprint
18
- end
19
-
20
- halt(404, SCHEMA_NOT_FOUND) unless schema_id && SUBJECTS[subject].include?(schema_id)
21
-
22
- { id: schema_id }.to_json
23
- end
24
- end
4
+ # This file is for back compatibility. The class has been renamed
5
+ # FakeConfluentSchemaRegistryServer, but avro_turf defines an alias for the
6
+ # old name, so we alias the require for now.
@@ -1,3 +1,3 @@
1
1
  module Avromatic
2
- VERSION = '0.17.1'.freeze
2
+ VERSION = '0.18.0.rc0'.freeze
3
3
  end
data/lib/avromatic.rb CHANGED
@@ -27,8 +27,8 @@ module Avromatic
27
27
 
28
28
  def self.build_schema_registry
29
29
  raise 'Avromatic must be configured with a registry_url' unless registry_url
30
- AvroTurf::CachedSchemaRegistry.new(
31
- AvroTurf::SchemaRegistry.new(registry_url, logger: logger)
30
+ AvroTurf::CachedConfluentSchemaRegistry.new(
31
+ AvroTurf::ConfluentSchemaRegistry.new(registry_url, logger: logger)
32
32
  )
33
33
  end
34
34
 
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.17.1
4
+ version: 0.18.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: 2017-02-17 00:00:00.000000000 Z
11
+ date: 2017-03-07 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: avro
@@ -72,14 +72,14 @@ dependencies:
72
72
  requirements:
73
73
  - - ">="
74
74
  - !ruby/object:Gem::Version
75
- version: 0.7.0
75
+ version: 0.8.0
76
76
  type: :runtime
77
77
  prerelease: false
78
78
  version_requirements: !ruby/object:Gem::Requirement
79
79
  requirements:
80
80
  - - ">="
81
81
  - !ruby/object:Gem::Version
82
- version: 0.7.0
82
+ version: 0.8.0
83
83
  - !ruby/object:Gem::Dependency
84
84
  name: bundler
85
85
  requirement: !ruby/object:Gem::Requirement
@@ -273,6 +273,7 @@ files:
273
273
  - lib/avromatic/railtie.rb
274
274
  - lib/avromatic/rspec.rb
275
275
  - lib/avromatic/schema_registry_patch.rb
276
+ - lib/avromatic/test/fake_confluent_schema_registry_server.rb
276
277
  - lib/avromatic/test/fake_schema_registry_server.rb
277
278
  - lib/avromatic/version.rb
278
279
  - log/.gitkeep
@@ -291,9 +292,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
291
292
  version: '0'
292
293
  required_rubygems_version: !ruby/object:Gem::Requirement
293
294
  requirements:
294
- - - ">="
295
+ - - ">"
295
296
  - !ruby/object:Gem::Version
296
- version: '0'
297
+ version: 1.3.1
297
298
  requirements: []
298
299
  rubyforge_project:
299
300
  rubygems_version: 2.6.10