avro 1.7.2 → 1.7.3

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/Rakefile CHANGED
@@ -21,7 +21,7 @@ Echoe.new('avro', VERSION) do |p|
21
21
  p.author = "Apache Software Foundation"
22
22
  p.email = "avro-dev@hadoop.apache.org"
23
23
  p.summary = "Apache Avro for Ruby"
24
- p.description = "Apache is a data serialization and RPC format"
24
+ p.description = "Avro is a data serialization and RPC format"
25
25
  p.url = "http://hadoop.apache.org/avro/"
26
26
  p.runtime_dependencies = %w[yajl-ruby]
27
27
  end
@@ -2,12 +2,12 @@
2
2
 
3
3
  Gem::Specification.new do |s|
4
4
  s.name = "avro"
5
- s.version = "1.7.2"
5
+ s.version = "1.7.3"
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 = "2012-09-18"
10
- s.description = "Apache is a data serialization and RPC format"
9
+ s.date = "2012-12-03"
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"]
13
13
  s.files = ["CHANGELOG", "Manifest", "Rakefile", "avro.gemspec", "interop/test_interop.rb", "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", "test/random_data.rb", "test/sample_ipc_client.rb", "test/sample_ipc_http_client.rb", "test/sample_ipc_http_server.rb", "test/sample_ipc_server.rb", "test/test_datafile.rb", "test/test_help.rb", "test/test_io.rb", "test/test_protocol.rb", "test/test_socket_transport.rb", "test/tool.rb"]
@@ -201,7 +201,7 @@ module Avro
201
201
 
202
202
  # Bytes are encoded as a long followed by that many bytes of data.
203
203
  def write_bytes(datum)
204
- write_long(datum.size)
204
+ write_long(datum.bytesize)
205
205
  @writer.write(datum)
206
206
  end
207
207
 
@@ -242,7 +242,7 @@ module Avro::IPC
242
242
 
243
243
  # Called by a server to deserialize a request, compute and serialize
244
244
  # a response or error. Compare to 'handle()' in Thrift.
245
- def respond(call_request)
245
+ def respond(call_request, transport=nil)
246
246
  buffer_decoder = Avro::IO::BinaryDecoder.new(StringIO.new(call_request))
247
247
  buffer_writer = StringIO.new('', 'w+')
248
248
  buffer_encoder = Avro::IO::BinaryEncoder.new(buffer_writer)
@@ -250,7 +250,7 @@ module Avro::IPC
250
250
  response_metadata = {}
251
251
 
252
252
  begin
253
- remote_protocol = process_handshake(buffer_decoder, buffer_encoder)
253
+ remote_protocol = process_handshake(buffer_decoder, buffer_encoder, transport)
254
254
  # handshake failure
255
255
  unless remote_protocol
256
256
  return buffer_writer.string
@@ -302,7 +302,10 @@ module Avro::IPC
302
302
  buffer_writer.string
303
303
  end
304
304
 
305
- def process_handshake(decoder, encoder)
305
+ def process_handshake(decoder, encoder, connection=nil)
306
+ if connection && connection.is_connected?
307
+ return connection.protocol
308
+ end
306
309
  handshake_request = HANDSHAKE_RESPONDER_READER.read(decoder)
307
310
  handshake_response = {}
308
311
 
@@ -338,6 +341,11 @@ module Avro::IPC
338
341
  end
339
342
 
340
343
  HANDSHAKE_RESPONDER_WRITER.write(handshake_response, encoder)
344
+
345
+ if connection && handshake_response['match'] != 'NONE'
346
+ connection.protocol = remote_protocol
347
+ end
348
+
341
349
  remote_protocol
342
350
  end
343
351
 
@@ -366,9 +374,15 @@ module Avro::IPC
366
374
  # A simple socket-based Transport implementation.
367
375
 
368
376
  attr_reader :sock, :remote_name
377
+ attr_accessor :protocol
369
378
 
370
379
  def initialize(sock)
371
380
  @sock = sock
381
+ @protocol = nil
382
+ end
383
+
384
+ def is_connected?()
385
+ !!@protocol
372
386
  end
373
387
 
374
388
  def transceive(request)
@@ -1,3 +1,4 @@
1
+ # -*- coding: utf-8 -*-
1
2
  # Licensed to the Apache Software Foundation (ASF) under one
2
3
  # or more contributor license agreements. See the NOTICE file
3
4
  # distributed with this work for additional information
@@ -140,4 +141,17 @@ JSON
140
141
  assert_equal(block_count+1, dw.block_count)
141
142
  end
142
143
  end
144
+
145
+ def test_utf8
146
+ datafile = Avro::DataFile::open('data.avr', 'w', '"string"')
147
+ datafile << "家"
148
+ datafile.close
149
+
150
+ datafile = Avro::DataFile.open('data.avr')
151
+ datafile.each do |s|
152
+ assert_equal "家", s
153
+ end
154
+ datafile.close
155
+ end
156
+
143
157
  end
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: 15
4
+ hash: 13
5
5
  prerelease:
6
6
  segments:
7
7
  - 1
8
8
  - 7
9
- - 2
10
- version: 1.7.2
9
+ - 3
10
+ version: 1.7.3
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: 2012-09-18 00:00:00 Z
18
+ date: 2012-12-03 00:00:00 Z
19
19
  dependencies:
20
20
  - !ruby/object:Gem::Dependency
21
21
  name: yajl-ruby
@@ -31,7 +31,7 @@ dependencies:
31
31
  version: "0"
32
32
  type: :runtime
33
33
  version_requirements: *id001
34
- description: Apache is a data serialization and RPC format
34
+ description: Avro is a data serialization and RPC format
35
35
  email: avro-dev@hadoop.apache.org
36
36
  executables: []
37
37