avro 1.7.3 → 1.7.4
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.
- data/avro.gemspec +2 -2
- data/lib/avro/io.rb +8 -7
- data/test/random_data.rb +1 -1
- data/test/test_io.rb +10 -0
- metadata +4 -4
data/avro.gemspec
CHANGED
@@ -2,11 +2,11 @@
|
|
2
2
|
|
3
3
|
Gem::Specification.new do |s|
|
4
4
|
s.name = "avro"
|
5
|
-
s.version = "1.7.
|
5
|
+
s.version = "1.7.4"
|
6
6
|
|
7
7
|
s.required_rubygems_version = Gem::Requirement.new(">= 1.2") if s.respond_to? :required_rubygems_version=
|
8
8
|
s.authors = ["Apache Software Foundation"]
|
9
|
-
s.date = "
|
9
|
+
s.date = "2013-02-21"
|
10
10
|
s.description = "Avro is a data serialization and RPC format"
|
11
11
|
s.email = "avro-dev@hadoop.apache.org"
|
12
12
|
s.extra_rdoc_files = ["CHANGELOG", "lib/avro.rb", "lib/avro/collect_hash.rb", "lib/avro/data_file.rb", "lib/avro/io.rb", "lib/avro/ipc.rb", "lib/avro/protocol.rb", "lib/avro/schema.rb"]
|
data/lib/avro/io.rb
CHANGED
@@ -96,8 +96,9 @@ module Avro
|
|
96
96
|
def read_string
|
97
97
|
# A string is encoded as a long followed by that many bytes of
|
98
98
|
# UTF-8 encoded character data.
|
99
|
-
|
100
|
-
|
99
|
+
read_bytes.tap do |string|
|
100
|
+
string.force_encoding("UTF-8") if string.respond_to? :force_encoding
|
101
|
+
end
|
101
102
|
end
|
102
103
|
|
103
104
|
def read(len)
|
@@ -244,7 +245,7 @@ module Avro
|
|
244
245
|
when 'record'
|
245
246
|
return check_props(writers_schema, readers_schema, [:fullname])
|
246
247
|
when 'error'
|
247
|
-
return check_props(
|
248
|
+
return check_props(writers_schema, readers_schema, [:fullname])
|
248
249
|
when 'request'
|
249
250
|
return true
|
250
251
|
when 'fixed'
|
@@ -314,7 +315,7 @@ module Avro
|
|
314
315
|
when 'array'; read_array(writers_schema, readers_schema, decoder)
|
315
316
|
when 'map'; read_map(writers_schema, readers_schema, decoder)
|
316
317
|
when 'union'; read_union(writers_schema, readers_schema, decoder)
|
317
|
-
when 'record', '
|
318
|
+
when 'record', 'error', 'request'; read_record(writers_schema, readers_schema, decoder)
|
318
319
|
else
|
319
320
|
raise AvroError, "Cannot read unknown schema type: #{writers_schema.type}"
|
320
321
|
end
|
@@ -442,7 +443,7 @@ module Avro
|
|
442
443
|
return read_map
|
443
444
|
when 'union'
|
444
445
|
return read_default_value(field_schema.schemas[0], default_value)
|
445
|
-
when 'record'
|
446
|
+
when 'record', 'error'
|
446
447
|
read_record = {}
|
447
448
|
field_schema.fields.each do |field|
|
448
449
|
json_val = default_value[field.name]
|
@@ -453,7 +454,7 @@ module Avro
|
|
453
454
|
return read_record
|
454
455
|
else
|
455
456
|
fail_msg = "Unknown type: #{field_schema.type}"
|
456
|
-
raise AvroError
|
457
|
+
raise AvroError, fail_msg
|
457
458
|
end
|
458
459
|
end
|
459
460
|
|
@@ -565,7 +566,7 @@ module Avro
|
|
565
566
|
when 'array'; write_array(writers_schema, datum, encoder)
|
566
567
|
when 'map'; write_map(writers_schema, datum, encoder)
|
567
568
|
when 'union'; write_union(writers_schema, datum, encoder)
|
568
|
-
when 'record', '
|
569
|
+
when 'record', 'error', 'request'; write_record(writers_schema, datum, encoder)
|
569
570
|
else
|
570
571
|
raise AvroError.new("Unknown type: #{writers_schema.type}")
|
571
572
|
end
|
data/test/random_data.rb
CHANGED
data/test/test_io.rb
CHANGED
@@ -73,6 +73,16 @@ EOS
|
|
73
73
|
check_default(record_schema, '{"f": 11}', {"f" => 11})
|
74
74
|
end
|
75
75
|
|
76
|
+
def test_error
|
77
|
+
error_schema = <<EOS
|
78
|
+
{"type": "error",
|
79
|
+
"name": "TestError",
|
80
|
+
"fields": [{"name": "message",
|
81
|
+
"type": "string"}]}
|
82
|
+
EOS
|
83
|
+
check_default(error_schema, '{"message": "boom"}', {"message" => "boom"})
|
84
|
+
end
|
85
|
+
|
76
86
|
def test_enum
|
77
87
|
enum_schema = '{"type": "enum", "name": "Test","symbols": ["A", "B"]}'
|
78
88
|
check_default(enum_schema, '"B"', "B")
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: avro
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 3
|
5
5
|
prerelease:
|
6
6
|
segments:
|
7
7
|
- 1
|
8
8
|
- 7
|
9
|
-
-
|
10
|
-
version: 1.7.
|
9
|
+
- 4
|
10
|
+
version: 1.7.4
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Apache Software Foundation
|
@@ -15,7 +15,7 @@ autorequire:
|
|
15
15
|
bindir: bin
|
16
16
|
cert_chain: []
|
17
17
|
|
18
|
-
date:
|
18
|
+
date: 2013-02-21 00:00:00 Z
|
19
19
|
dependencies:
|
20
20
|
- !ruby/object:Gem::Dependency
|
21
21
|
name: yajl-ruby
|