avro-patches 0.3.2 → 0.3.3

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: cead23f8f8b193155fa09f74ea11fbf93ef2f82a
4
- data.tar.gz: 898e50b87cf7131ae6e70d702d29b5fb5130a0b9
3
+ metadata.gz: e79aa3bc80d548e2c6556c05208e1ac2b6b47889
4
+ data.tar.gz: b84ac201fea59bb1cd68fe70cf4874ba8252acbf
5
5
  SHA512:
6
- metadata.gz: 5180f690479d7c98bb404112ae1789164f333068ebb6f388385e18bb0c50e4c00fc2fb12703c112c44a7ea344d159c2aab9dd168f33eab09e05614641a9490ab
7
- data.tar.gz: 108e130bc1452bf63fa5fe89cd487030bef60243d72b3e15ed4cc9443694e4343beaf8cabcee654da3e0d72b9de0ce126fd33dcd0ea651b1e1f2167beb5fcfd3
6
+ metadata.gz: a085676807b8837acb53c6d66a5cd53cc2a0e4bad3055892abdd03c59fdf02a9b85cabeee91b81fc6a75c3e428b4a0f7bef6941c9034a8f646b30353c1cf178f
7
+ data.tar.gz: 73404b334dfec4168f3cebbe7dc07266be9ecf716ce5c0d3ea9a0086e1d2919cbe99766b743e12f7596a1a9d91e6d6ccbe3868b5c8529f898d95d39938f1a75e
@@ -1,5 +1,9 @@
1
1
  # avro-patches
2
2
 
3
+ ## v0.3.3
4
+ - Restore basic validation of records, arrays, and maps before writing.
5
+ - Add validation to protect against nil value for map.
6
+
3
7
  ## v0.3.2
4
8
  - Fix remaining Ruby 2.4 deprecation notices by replacing `require 'avro'`.
5
9
 
@@ -25,3 +25,26 @@ Avro::IO::DatumWriter.class_eval do
25
25
  end
26
26
  end
27
27
  end
28
+
29
+ module AvroPatches
30
+ module SchemaValidator
31
+ module IOPatches
32
+ def write_record(writers_schema, datum, encoder)
33
+ raise Avro::IO::AvroTypeError.new(writers_schema, datum) unless datum.is_a?(Hash)
34
+ super
35
+ end
36
+
37
+ def write_array(writers_schema, datum, encoder)
38
+ raise Avro::IO::AvroTypeError.new(writers_schema, datum) unless datum.is_a?(Array)
39
+ super
40
+ end
41
+
42
+ def write_map(writers_schema, datum, encoder)
43
+ raise Avro::IO::AvroTypeError.new(writers_schema, datum) unless datum.is_a?(Hash)
44
+ super
45
+ end
46
+ end
47
+ end
48
+ end
49
+
50
+ Avro::IO::DatumWriter.prepend(AvroPatches::SchemaValidator::IOPatches)
@@ -157,6 +157,7 @@ module Avro
157
157
  end
158
158
 
159
159
  def validate_map(expected_schema, datum, path, result)
160
+ fail TypeMismatchError unless datum.is_a?(Hash)
160
161
  datum.keys.each do |k|
161
162
  result.add_error(path, "unexpected key type '#{ruby_to_avro_type(k.class)}' in map") unless k.is_a?(String)
162
163
  end
@@ -1,3 +1,3 @@
1
1
  module AvroPatches
2
- VERSION = '0.3.2'.freeze
2
+ VERSION = '0.3.3'.freeze
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: avro-patches
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.2
4
+ version: 0.3.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Salsify, Inc
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-08-01 00:00:00.000000000 Z
11
+ date: 2018-02-02 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -140,7 +140,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
140
140
  version: '0'
141
141
  requirements: []
142
142
  rubyforge_project:
143
- rubygems_version: 2.6.11
143
+ rubygems_version: 2.6.13
144
144
  signing_key:
145
145
  specification_version: 4
146
146
  summary: Patches for the official Apache Avro Ruby implementation