libuv 1.3.0 → 2.0.0

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: 8b69d133fc3c1af085d7028273dd69cb700a8d4d
4
- data.tar.gz: 19271270d05dab8ad4a49eabacc269d2198c9447
3
+ metadata.gz: d2411dd2877c9256b66f5efc5d875d967f8a64cf
4
+ data.tar.gz: 0d255d823975c43add1a2a660bee42cb973fbbff
5
5
  SHA512:
6
- metadata.gz: c3f1a81309e2a576b1b1315b8bea853354b0a5d7fad86afb296c9aeda9bb5458ca88c6579d9cf73e16702f1810b58f768eb6900a29b31d0465d38b5b4d2fdde8
7
- data.tar.gz: a3366d0120f38dcbc7ef7bf91c8e95e3adbf68a28535ef32ddfff202c089e1c36cab21dc33b855c53b121af11bcb4d535fa916f22b4b7b1ca1272f09ccdda799
6
+ metadata.gz: a9afbe0baf2d31528086aa9122badfbc1fb0e13e91cb08d61a7c889ef47e18efca8959ede4d792a35869f3dca526332a97fb70828f4d7f556df0e6019a2a6bd8
7
+ data.tar.gz: 59bf41d7c9badb7b4ed3b88c6ea30cb0e2c2d7e1c5a54ef373da9019f07d5b42564e1077efbd3a20d376bd5b2506f6bf96a3df9d94c8c6f648e611bfa2dd4944
@@ -9,8 +9,8 @@ branches:
9
9
  only:
10
10
  - master
11
11
  before_install:
12
- - sudo apt-get install subversion
13
12
  - git submodule update --init --recursive
14
13
  - gem install ffi
15
14
  before_script:
16
15
  - rake compile
16
+ sudo: false
data/README.md CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  [![Build Status](https://travis-ci.org/cotag/libuv.svg?branch=master)](https://travis-ci.org/cotag/libuv)
4
4
 
5
- [Libuv](https://github.com/joyent/libuv) is a cross platform asynchronous IO implementation that powers NodeJS. It supports sockets, both UDP and TCP, filesystem watch, TTY, Pipes and other asynchronous primitives like timer, check, prepare and idle.
5
+ [Libuv](https://github.com/libuv/libuv) is a cross platform asynchronous IO implementation that powers NodeJS. It supports sockets, both UDP and TCP, filesystem watch, TTY, Pipes and other asynchronous primitives like timer, check, prepare and idle.
6
6
 
7
7
  The Libuv gem contains Libuv and a Ruby wrapper that implements [pipelined promises](http://en.wikipedia.org/wiki/Futures_and_promises#Promise_pipelining) for asynchronous flow control and [coroutines](http://en.wikipedia.org/wiki/Coroutine) for untangling evented code
8
8
 
@@ -77,7 +77,6 @@ or
77
77
 
78
78
  ### Prerequisites
79
79
 
80
- * The installation requires [subversion](http://subversion.apache.org/packages.html) to be installed on your system and available on the PATH
81
80
  * The installation also requires [python 2.x](http://www.python.org/getit/) to be installed and available on the PATH
82
81
  * setting the environmental variable `USE_GLOBAL_LIBUV` will prevent compiling the packaged version.
83
82
  * if you have a compatible `libuv.(so | dylib | dll)` on the PATH already
data/Rakefile CHANGED
@@ -26,6 +26,6 @@ end
26
26
 
27
27
 
28
28
  desc "Compile libuv from submodule"
29
- task :compile => ["ext/libuv.#{FFI::Platform::LIBSUFFIX}"]
29
+ task :compile => ["ext/libuv/lib/libuv.#{FFI::Platform::LIBSUFFIX}"]
30
30
 
31
- CLOBBER.include("ext/libuv.#{FFI::Platform::LIBSUFFIX}")
31
+ CLOBBER.include("ext/libuv/lib/libuv.#{FFI::Platform::LIBSUFFIX}")
@@ -23,10 +23,27 @@ module Libuv
23
23
  begin
24
24
  # bias the library discovery to a path inside the gem first, then
25
25
  # to the usual system paths
26
- path_to_internal_libuv = File.dirname(__FILE__) + '/../../../ext'
27
- LIBUV_PATHS = [
28
- path_to_internal_libuv, '/usr/local/lib', '/opt/local/lib', '/usr/lib64'
29
- ].map{|path| "#{path}/libuv.#{FFI::Platform::LIBSUFFIX}"}
26
+
27
+ path_to_internal_libuv = ::File.dirname(__FILE__) + '/../../../ext/libuv/lib'
28
+
29
+ paths = [
30
+ path_to_internal_libuv,
31
+ '/usr/local/lib',
32
+ '/opt/local/lib',
33
+ '/usr/lib64'
34
+ ]
35
+
36
+ if FFI::Platform.mac?
37
+ # Using home/user/lib is the best we can do on OSX
38
+ # Primarily a dev platform so that is OK
39
+ paths.unshift "#{ENV['HOME']}/lib"
40
+ elsif FFI::Platform.windows?
41
+ # TODO:: AddDllDirectory function to point to path_to_internal_libuv
42
+ else # UNIX
43
+ # TODO:: ??
44
+ end
45
+
46
+ LIBUV_PATHS = paths.map{|path| "#{path}/libuv.#{FFI::Platform::LIBSUFFIX}"}
30
47
  libuv = ffi_lib(LIBUV_PATHS + %w{libuv}).first
31
48
  rescue LoadError
32
49
  warn <<-WARNING
@@ -39,6 +56,11 @@ module Libuv
39
56
  end
40
57
 
41
58
 
59
+ def self.path_to_internal_libuv
60
+ @path_to_internal_libuv ||= ::File.expand_path("../../../../ext/libuv/lib/libuv.#{FFI::Platform::LIBSUFFIX}", __FILE__)
61
+ end
62
+
63
+
42
64
  require 'libuv/ext/types'
43
65
 
44
66
 
@@ -15,8 +15,17 @@ file "ext/libuv/build/Release/libuv.#{FFI::Platform::LIBSUFFIX}" => 'ext/libuv/u
15
15
  end
16
16
  end
17
17
 
18
- file "ext/libuv.#{FFI::Platform::LIBSUFFIX}" => "ext/libuv/build/Release/libuv.#{FFI::Platform::LIBSUFFIX}" do
19
- File.symlink("libuv/build/Release/libuv.#{FFI::Platform::LIBSUFFIX}", "ext/libuv.#{FFI::Platform::LIBSUFFIX}")
18
+ file "ext/libuv/lib/libuv.#{FFI::Platform::LIBSUFFIX}" => "ext/libuv/build/Release/libuv.#{FFI::Platform::LIBSUFFIX}" do
19
+ FileUtils.mkdir('ext/libuv/lib') unless File.directory?('ext/libuv/lib')
20
+
21
+ user_lib = "#{ENV['HOME']}/lib"
22
+ FileUtils.mkdir(user_lib) unless File.directory?(user_lib)
23
+
24
+ # Useful for building other libraries that wish to use Libuv
25
+ FileUtils.cp("ext/libuv/build/Release/libuv.#{FFI::Platform::LIBSUFFIX}", "ext/libuv/lib/libuv.#{FFI::Platform::LIBSUFFIX}")
26
+
27
+ # Primrary load location - falls back to above if not available
28
+ FileUtils.cp("ext/libuv/build/Release/libuv.#{FFI::Platform::LIBSUFFIX}", "#{user_lib}/libuv.#{FFI::Platform::LIBSUFFIX}")
20
29
  end
21
30
 
22
31
  CLEAN.include('ext/libuv/uv.xcodeproj')
@@ -15,8 +15,13 @@ file "ext/libuv/out/Release/lib.target/libuv.#{FFI::Platform::LIBSUFFIX}" => 'ex
15
15
  end
16
16
  end
17
17
 
18
- file "ext/libuv.#{FFI::Platform::LIBSUFFIX}" => "ext/libuv/out/Release/lib.target/libuv.#{FFI::Platform::LIBSUFFIX}" do
19
- File.symlink("libuv/out/Release/lib.target/libuv.#{FFI::Platform::LIBSUFFIX}", "ext/libuv.#{FFI::Platform::LIBSUFFIX}")
18
+ file "ext/libuv/lib/libuv.#{FFI::Platform::LIBSUFFIX}" => "ext/libuv/out/Release/lib.target/libuv.#{FFI::Platform::LIBSUFFIX}" do
19
+ FileUtils.mkdir('ext/libuv/lib') unless File.directory?('ext/libuv/lib')
20
+ begin
21
+ FileUtils.cp("ext/libuv/out/Release/lib.target/libuv.#{FFI::Platform::LIBSUFFIX}", "ext/libuv/lib/libuv.#{FFI::Platform::LIBSUFFIX}")
22
+ rescue => e
23
+ FileUtils.cp("ext/libuv/out/Release/lib.target/libuv.#{FFI::Platform::LIBSUFFIX}.1", "ext/libuv/lib/libuv.#{FFI::Platform::LIBSUFFIX}")
24
+ end
20
25
  end
21
26
 
22
27
  CLEAN.include('ext/libuv/out')
@@ -8,8 +8,9 @@ file "ext/libuv/Release/libuv.#{FFI::Platform::LIBSUFFIX}" do
8
8
  end
9
9
  end
10
10
 
11
- file "ext/libuv.#{FFI::Platform::LIBSUFFIX}" => "ext/libuv/Release/libuv.#{FFI::Platform::LIBSUFFIX}" do
12
- FileUtils.mv("ext/libuv/Release/libuv.#{FFI::Platform::LIBSUFFIX}", "ext/libuv.#{FFI::Platform::LIBSUFFIX}")
11
+ file "ext/libuv/lib/libuv.#{FFI::Platform::LIBSUFFIX}" => "ext/libuv/Release/libuv.#{FFI::Platform::LIBSUFFIX}" do
12
+ FileUtils.mkdir('ext/libuv/lib') unless File.directory?('ext/libuv/lib')
13
+ FileUtils.cp("ext/libuv/Release/libuv.#{FFI::Platform::LIBSUFFIX}", "ext/libuv/lib/libuv.#{FFI::Platform::LIBSUFFIX}")
13
14
  end
14
15
 
15
16
  CLOBBER.include("ext/libuv/Release/libuv.#{FFI::Platform::LIBSUFFIX}")
@@ -1,6 +1,6 @@
1
1
  module Libuv
2
2
  module Assertions
3
- MSG_NO_PROC = 'no block given'
3
+ MSG_NO_PROC = 'no block given'.freeze
4
4
 
5
5
  def assert_block(proc, msg = MSG_NO_PROC)
6
6
  raise ArgumentError, msg, caller unless proc.respond_to? :call
@@ -95,6 +95,7 @@ module Libuv
95
95
  end
96
96
  deferred.promise
97
97
  end
98
+ alias_method :puts, :write
98
99
 
99
100
  def readable?
100
101
  return false if @closed
@@ -22,7 +22,9 @@ module Libuv
22
22
 
23
23
  def bind(name, callback = nil, &blk)
24
24
  return if @closed
25
- @on_listen = callback || blk
25
+ @on_accept = callback || blk
26
+ @on_listen = method(:accept)
27
+
26
28
  assert_type(String, name, "name must be a String")
27
29
  name = windows_path name if FFI::Platform.windows?
28
30
 
@@ -30,34 +32,17 @@ module Libuv
30
32
  reject(error) if error
31
33
  end
32
34
 
33
- def accept(callback = nil, &blk)
34
- pipe = nil
35
- begin
36
- raise RuntimeError, CLOSED_HANDLE_ERROR if @closed
37
- pipe = Pipe.new(loop, @ipc, handle)
38
- rescue Exception => e
39
- @loop.log :info, :pipe_accept_failed, e
40
- end
41
- if pipe
42
- begin
43
- (callback || blk).call(pipe)
44
- rescue Exception => e
45
- @loop.log :error, :pipe_accept_cb, e
46
- end
47
- end
48
- nil
49
- end
50
-
51
35
  def open(fileno, callback = nil, &blk)
52
36
  @callback = callback || blk
53
- assert_type(Integer, fileno, "io#fileno must return an integer file descriptor")
37
+ assert_type(Integer, fileno, 'fileno must be an integer file descriptor'.freeze)
38
+
54
39
  begin
55
40
  raise RuntimeError, CLOSED_HANDLE_ERROR if @closed
56
41
  check_result! ::Libuv::Ext.pipe_open(handle, fileno)
57
42
 
58
43
  # Emulate on_connect behavior
59
44
  begin
60
- @callback.call(self)
45
+ @callback.call(self) if @callback
61
46
  rescue Exception => e
62
47
  @loop.log :error, :pipe_connect_cb, e
63
48
  end
@@ -121,8 +106,8 @@ module Libuv
121
106
  def check_pending(expecting = nil)
122
107
  return nil if ::Libuv::Ext.pipe_pending_count(handle) <= 0
123
108
 
124
- pending = ::Libuv::Ext.pipe_pending_type(handle)
125
- raise TypeError, "IPC expecting #{expecting} and received #{pending}" if expecting && expecting != pending
109
+ pending = ::Libuv::Ext.pipe_pending_type(handle).to_sym
110
+ raise TypeError, "IPC expecting #{expecting} and received #{pending}" if expecting && expecting.to_sym != pending
126
111
 
127
112
  # Hide the accept logic
128
113
  remote = nil
@@ -148,7 +133,24 @@ module Libuv
148
133
 
149
134
 
150
135
  private
136
+
151
137
 
138
+ def accept(_)
139
+ pipe = nil
140
+ begin
141
+ raise RuntimeError, CLOSED_HANDLE_ERROR if @closed
142
+ pipe = Pipe.new(loop, @ipc, handle)
143
+ rescue Exception => e
144
+ @loop.log :info, :pipe_accept_failed, e
145
+ end
146
+ if pipe
147
+ begin
148
+ @on_accept.call(pipe)
149
+ rescue Exception => e
150
+ @loop.log :error, :pipe_accept_cb, e
151
+ end
152
+ end
153
+ end
152
154
 
153
155
  def on_connect(req, status)
154
156
  cleanup_callbacks req.address
@@ -425,7 +425,7 @@ module Libuv
425
425
  promises.each_index do |index|
426
426
  ref(loop, promises[index]).then(proc {|result|
427
427
  if results[index].nil?
428
- results[index] = [result, false]
428
+ results[index] = [result, true]
429
429
  counter -= 1
430
430
  deferred.resolve(results) if counter <= 0
431
431
  end
@@ -152,12 +152,10 @@ module Libuv
152
152
 
153
153
  alias_method :direct_write, :write
154
154
  def write(data)
155
- if @tls.nil?
156
- direct_write(data)
157
- else
155
+ if @tls
158
156
  deferred = @loop.defer
159
157
 
160
- if @handshake == true
158
+ if @handshake
161
159
  @pending_write = deferred
162
160
  @tls.encrypt(data)
163
161
  else
@@ -165,6 +163,8 @@ module Libuv
165
163
  end
166
164
 
167
165
  deferred.promise
166
+ else
167
+ direct_write(data)
168
168
  end
169
169
  end
170
170
 
@@ -183,7 +183,9 @@ module Libuv
183
183
 
184
184
  def bind(ip, port, callback = nil, &blk)
185
185
  return if @closed
186
- @on_listen = callback || blk
186
+ @on_accept = callback || blk
187
+ @on_listen = method(:accept)
188
+
187
189
  assert_type(String, ip, IP_ARGUMENT_ERROR)
188
190
  assert_type(Integer, port, PORT_ARGUMENT_ERROR)
189
191
 
@@ -198,7 +200,8 @@ module Libuv
198
200
  def open(fd, binding = true, callback = nil, &blk)
199
201
  return if @closed
200
202
  if binding
201
- @on_listen = callback || blk
203
+ @on_listen = method(:accept)
204
+ @on_accept = callback || blk
202
205
  else
203
206
  @callback = callback || blk
204
207
  end
@@ -206,21 +209,6 @@ module Libuv
206
209
  reject(error) if error
207
210
  end
208
211
 
209
- def accept(callback = nil, &blk)
210
- begin
211
- raise RuntimeError, CLOSED_HANDLE_ERROR if @closed
212
- tcp = TCP.new(loop, handle)
213
- begin
214
- (callback || blk).call(tcp)
215
- rescue Exception => e
216
- @loop.log :error, :tcp_accept_cb, e
217
- end
218
- rescue Exception => e
219
- @loop.log :info, :tcp_accept_failed, e
220
- end
221
- nil
222
- end
223
-
224
212
  def connect(ip, port, callback = nil, &blk)
225
213
  return if @closed
226
214
  @callback = callback || blk
@@ -309,6 +297,20 @@ module Libuv
309
297
  end
310
298
  end
311
299
 
300
+ def accept(_)
301
+ begin
302
+ raise RuntimeError, CLOSED_HANDLE_ERROR if @closed
303
+ tcp = TCP.new(loop, handle)
304
+ begin
305
+ @on_accept.call(tcp)
306
+ rescue Exception => e
307
+ @loop.log :error, :tcp_accept_cb, e
308
+ end
309
+ rescue Exception => e
310
+ @loop.log :info, :tcp_accept_failed, e
311
+ end
312
+ end
313
+
312
314
 
313
315
  class SocketBase
314
316
  include Resource
@@ -1,3 +1,3 @@
1
1
  module Libuv
2
- VERSION = '1.3.0'
2
+ VERSION = '2.0.0'
3
3
  end
@@ -82,6 +82,32 @@ describe Libuv::Filesystem do
82
82
  expect(@log).to eq(:success)
83
83
  end
84
84
 
85
+ it "should return stats on the file" do
86
+ @loop.run { |logger|
87
+ logger.progress &@logger
88
+
89
+ file = @loop.file(@thefile, File::RDONLY)
90
+ file.progress do
91
+ file.stat.then do |stats|
92
+ file.close
93
+ @timeout.close
94
+ @loop.stop
95
+ @log << stats[:st_mtim][:tv_sec]
96
+ end
97
+ end
98
+ file.catch do |error|
99
+ @general_failure << error
100
+ @timeout.close
101
+ file.close
102
+ @loop.stop
103
+ end
104
+ }
105
+
106
+ expect(@general_failure).to eq([])
107
+ expect(@log[0]).to be_kind_of(Integer)
108
+ expect(@log.length).to eql(1)
109
+ end
110
+
85
111
  it "should read from a file" do
86
112
  @loop.run { |logger|
87
113
  logger.progress &@logger
@@ -137,31 +163,29 @@ describe Libuv::Filesystem do
137
163
  @server = @loop.tcp
138
164
  @client = @loop.tcp
139
165
 
140
- @server.bind('127.0.0.1', 34570) do |server|
141
- server.accept do |client|
142
- client.progress do |data|
143
- file = @loop.file('.rspec', File::RDONLY)
144
- file.progress do
145
- file.send_file(client).then(proc {
146
- file.close
147
- client.close
148
- }, proc { |error|
149
- @general_failure << error
150
- })
151
- end
152
- file.catch do |error|
153
- @general_failure << error.inspect
166
+ @server.bind('127.0.0.1', 34570) do |client|
167
+ client.progress do |data|
168
+ file = @loop.file('.rspec', File::RDONLY)
169
+ file.progress do
170
+ file.send_file(client).then(proc {
154
171
  file.close
155
172
  client.close
156
- end
173
+ }, proc { |error|
174
+ @general_failure << error
175
+ })
157
176
  end
158
- client.start_read
159
- client.finally do
160
- @timeout.close
161
- @server.close
162
- @loop.stop
177
+ file.catch do |error|
178
+ @general_failure << error.inspect
179
+ file.close
180
+ client.close
163
181
  end
164
182
  end
183
+ client.start_read
184
+ client.finally do
185
+ @timeout.close
186
+ @server.close
187
+ @loop.stop
188
+ end
165
189
  end
166
190
  # catch errors
167
191
  @server.catch do |reason|
@@ -205,31 +229,29 @@ describe Libuv::Filesystem do
205
229
  @server = @loop.tcp
206
230
  @client = @loop.tcp
207
231
 
208
- @server.bind('127.0.0.1', 34568) do |server|
209
- server.accept do |client|
210
- client.progress do |data|
211
- file = @loop.file('.rspec', File::RDONLY)
212
- file.progress do
213
- file.send_file(client, :http).then(proc {
214
- file.close
215
- client.close
216
- }, proc { |error|
217
- @general_failure << error
218
- })
219
- end
220
- file.catch do |error|
221
- @general_failure << error.inspect
232
+ @server.bind('127.0.0.1', 34568) do |client|
233
+ client.progress do |data|
234
+ file = @loop.file('.rspec', File::RDONLY)
235
+ file.progress do
236
+ file.send_file(client, :http).then(proc {
222
237
  file.close
223
238
  client.close
224
- end
239
+ }, proc { |error|
240
+ @general_failure << error
241
+ })
225
242
  end
226
- client.start_read
227
- client.finally do
228
- @timeout.close
229
- @server.close
230
- @loop.stop
243
+ file.catch do |error|
244
+ @general_failure << error.inspect
245
+ file.close
246
+ client.close
231
247
  end
232
248
  end
249
+ client.start_read
250
+ client.finally do
251
+ @timeout.close
252
+ @server.close
253
+ @loop.stop
254
+ end
233
255
  end
234
256
  # catch errors
235
257
  @server.catch do |reason|
@@ -47,14 +47,12 @@ describe Libuv::Pipe do
47
47
  end
48
48
  end
49
49
 
50
- @server.bind(@pipefile) do |connection|
51
- connection.accept do |client|
52
- client.progress do |data|
53
- @log << data
54
- client.write('pong')
55
- end
56
- client.start_read
50
+ @server.bind(@pipefile) do |client|
51
+ client.progress do |data|
52
+ @log << data
53
+ client.write('pong')
57
54
  end
55
+ client.start_read
58
56
  end
59
57
 
60
58
  # catch server errors
@@ -42,15 +42,13 @@ describe Libuv::TCP do
42
42
  end
43
43
 
44
44
 
45
- @server.bind('127.0.0.1', 34567) do |server|
46
- server.accept do |client|
47
- client.progress do |data|
48
- @log << data
45
+ @server.bind('127.0.0.1', 34567) do |client|
46
+ client.progress do |data|
47
+ @log << data
49
48
 
50
- client.write('pong')
51
- end
52
- client.start_read
49
+ client.write('pong')
53
50
  end
51
+ client.start_read
54
52
  end
55
53
 
56
54
  # catch errors
@@ -106,10 +104,8 @@ describe Libuv::TCP do
106
104
 
107
105
 
108
106
  @remote = nil
109
- @server.bind('127.0.0.1', 45678) do |server|
110
- server.accept do |client|
111
- @remote.write2(client)
112
- end
107
+ @server.bind('127.0.0.1', 45678) do |client|
108
+ @remote.write2(client)
113
109
  end
114
110
 
115
111
  # catch errors
@@ -119,25 +115,23 @@ describe Libuv::TCP do
119
115
 
120
116
 
121
117
  @pipeserve = @loop.pipe(true)
122
- @pipeserve.bind(@pipefile) do |connection|
123
- connection.accept do |client|
124
- @remote = client
125
-
126
- # start listening on TCP server
127
- @server.listen(1024)
118
+ @pipeserve.bind(@pipefile) do |client|
119
+ @remote = client
128
120
 
129
- # connect client to server
130
- @client.connect('127.0.0.1', 45678) do |client|
131
- client.progress do |data|
132
- @sync.synchronize {
133
- @log << data
134
- }
135
- @client.shutdown
136
- end
121
+ # start listening on TCP server
122
+ @server.listen(1024)
137
123
 
138
- @client.start_read
139
- @client.write('ping')
124
+ # connect client to server
125
+ @client.connect('127.0.0.1', 45678) do |client|
126
+ client.progress do |data|
127
+ @sync.synchronize {
128
+ @log << data
129
+ }
130
+ @client.shutdown
140
131
  end
132
+
133
+ @client.start_read
134
+ @client.write('ping')
141
135
  end
142
136
 
143
137
  @pipeserve.getsockname
@@ -216,16 +210,14 @@ describe Libuv::TCP do
216
210
  end
217
211
 
218
212
 
219
- @server.bind('127.0.0.1', 34567) do |server|
220
- server.accept do |client|
221
- client.start_tls(server: true)
222
- client.progress do |data|
223
- @log << data
213
+ @server.bind('127.0.0.1', 56789) do |client|
214
+ client.start_tls(server: true)
215
+ client.progress do |data|
216
+ @log << data
224
217
 
225
- client.write('pong')
226
- end
227
- client.start_read
218
+ client.write('pong')
228
219
  end
220
+ client.start_read
229
221
  end
230
222
 
231
223
  # catch errors
@@ -239,7 +231,7 @@ describe Libuv::TCP do
239
231
 
240
232
 
241
233
  # connect client to server
242
- @client.connect('127.0.0.1', 34567) do |client|
234
+ @client.connect('127.0.0.1', 56789) do |client|
243
235
  client.start_tls
244
236
  client.progress do |data|
245
237
  @log << data
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: libuv
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.3.0
4
+ version: 2.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Bulat Shakirzyanov
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2015-04-26 00:00:00.000000000 Z
12
+ date: 2015-08-09 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: ffi
@@ -120,10 +120,12 @@ files:
120
120
  - ext/libuv/CONTRIBUTING.md
121
121
  - ext/libuv/ChangeLog
122
122
  - ext/libuv/LICENSE
123
+ - ext/libuv/MAINTAINERS.md
123
124
  - ext/libuv/Makefile.am
124
125
  - ext/libuv/Makefile.mingw
125
126
  - ext/libuv/README.md
126
127
  - ext/libuv/android-configure
128
+ - ext/libuv/appveyor.yml
127
129
  - ext/libuv/autogen.sh
128
130
  - ext/libuv/checksparse.sh
129
131
  - ext/libuv/common.gypi
@@ -173,6 +175,7 @@ files:
173
175
  - ext/libuv/docs/src/timer.rst
174
176
  - ext/libuv/docs/src/tty.rst
175
177
  - ext/libuv/docs/src/udp.rst
178
+ - ext/libuv/docs/src/version.rst
176
179
  - ext/libuv/gyp_uv.py
177
180
  - ext/libuv/img/banner.png
178
181
  - ext/libuv/img/logos.svg
@@ -191,6 +194,7 @@ files:
191
194
  - ext/libuv/include/uv-version.h
192
195
  - ext/libuv/include/uv-win.h
193
196
  - ext/libuv/include/uv.h
197
+ - ext/libuv/libuv.nsi
194
198
  - ext/libuv/libuv.pc.in
195
199
  - ext/libuv/m4/.gitignore
196
200
  - ext/libuv/m4/as_case.m4
@@ -344,6 +348,7 @@ files:
344
348
  - ext/libuv/test/test-getnameinfo.c
345
349
  - ext/libuv/test/test-getsockname.c
346
350
  - ext/libuv/test/test-handle-fileno.c
351
+ - ext/libuv/test/test-homedir.c
347
352
  - ext/libuv/test/test-hrtime.c
348
353
  - ext/libuv/test/test-idle.c
349
354
  - ext/libuv/test/test-ip4-addr.c
@@ -365,6 +370,7 @@ files:
365
370
  - ext/libuv/test/test-pipe-bind-error.c
366
371
  - ext/libuv/test/test-pipe-close-stdout-read-stdin.c
367
372
  - ext/libuv/test/test-pipe-connect-error.c
373
+ - ext/libuv/test/test-pipe-connect-prepare.c
368
374
  - ext/libuv/test/test-pipe-getsockname.c
369
375
  - ext/libuv/test/test-pipe-sendmsg.c
370
376
  - ext/libuv/test/test-pipe-server-close.c
@@ -396,6 +402,7 @@ files:
396
402
  - ext/libuv/test/test-tcp-connect-error.c
397
403
  - ext/libuv/test/test-tcp-connect-timeout.c
398
404
  - ext/libuv/test/test-tcp-connect6-error.c
405
+ - ext/libuv/test/test-tcp-create-socket-early.c
399
406
  - ext/libuv/test/test-tcp-flags.c
400
407
  - ext/libuv/test/test-tcp-oob.c
401
408
  - ext/libuv/test/test-tcp-open.c
@@ -404,6 +411,7 @@ files:
404
411
  - ext/libuv/test/test-tcp-try-write.c
405
412
  - ext/libuv/test/test-tcp-unexpected-read.c
406
413
  - ext/libuv/test/test-tcp-write-after-connect.c
414
+ - ext/libuv/test/test-tcp-write-fail.c
407
415
  - ext/libuv/test/test-tcp-write-queue-order.c
408
416
  - ext/libuv/test/test-tcp-write-to-half-open-connection.c
409
417
  - ext/libuv/test/test-tcp-writealot.c
@@ -416,6 +424,7 @@ files:
416
424
  - ext/libuv/test/test-timer.c
417
425
  - ext/libuv/test/test-tty.c
418
426
  - ext/libuv/test/test-udp-bind.c
427
+ - ext/libuv/test/test-udp-create-socket-early.c
419
428
  - ext/libuv/test/test-udp-dgram-too-big.c
420
429
  - ext/libuv/test/test-udp-ipv6.c
421
430
  - ext/libuv/test/test-udp-multicast-interface.c