celluloid-io 0.13.1 → 0.14.0.pre

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.
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 254d0a9575a6c73e8ef8f797a4fe8097857a51b3
4
+ data.tar.gz: 0b8068ae30da210730735944d34c3140463b3946
5
+ SHA512:
6
+ metadata.gz: 37e40fac8272a4ac1890d36dbab41ba11a90405fa36bea9275cfbe2b31c678f61b634a5ca4bfea0b3dbe0f5968a875283cab1f08e4a6870ba5983b366cbb2a71
7
+ data.tar.gz: b126f30e30822caf88f8582b63eeb2ed0d1891821b8ffc81d6d60291360be709b3e76c6db6e2c632f7203da965847dcbfb0dab59eb076aebe2f85528a439c25a
data/CHANGES.md CHANGED
@@ -1,8 +1,3 @@
1
- 0.13.1 (2013-04-04)
2
- -------------------
3
- * Fix major performance regression: I/O backpressure (i.e. EAGAIN
4
- handling) was being double-dispatched through the actor protocol.
5
-
6
1
  0.13.0
7
2
  ------
8
3
  * Support for many, many more IO methods, particularly line-oriented
data/Gemfile CHANGED
@@ -2,4 +2,4 @@ source 'https://rubygems.org'
2
2
  gemspec
3
3
 
4
4
  gem 'coveralls', require: false
5
- gem 'celluloid', github: 'celluloid/celluloid', branch: '0-13-stable'
5
+ gem 'celluloid', github: 'celluloid/celluloid', branch: 'master'
data/README.md CHANGED
@@ -2,7 +2,6 @@
2
2
  ================
3
3
  [![Gem Version](https://badge.fury.io/rb/celluloid-io.png)](http://rubygems.org/gems/celluloid-io)
4
4
  [![Build Status](https://secure.travis-ci.org/celluloid/celluloid-io.png?branch=master)](http://travis-ci.org/celluloid/celluloid-io)
5
- [![Dependency Status](https://gemnasium.com/celluloid/celluloid-io.png)](https://gemnasium.com/celluloid/celluloid-io)
6
5
  [![Code Climate](https://codeclimate.com/github/celluloid/celluloid-io.png)](https://codeclimate.com/github/celluloid/celluloid-io)
7
6
  [![Coverage Status](https://coveralls.io/repos/celluloid/celluloid-io/badge.png?branch=master)](https://coveralls.io/r/celluloid/celluloid-io)
8
7
 
@@ -7,6 +7,7 @@ require 'celluloid/io'
7
7
 
8
8
  class EchoServer
9
9
  include Celluloid::IO
10
+ finalizer :finalize
10
11
 
11
12
  def initialize(host, port)
12
13
  puts "*** Starting echo server on #{host}:#{port}"
@@ -3,6 +3,7 @@ require 'celluloid/io'
3
3
 
4
4
  class EchoUNIXClient
5
5
  include Celluloid::IO
6
+ finalizer :finalize
6
7
 
7
8
  def initialize(socket_path)
8
9
  puts "*** connecting to #{socket_path}"
@@ -25,4 +26,4 @@ class EchoUNIXClient
25
26
  end
26
27
 
27
28
  c = EchoUNIXClient.new("/tmp/sock_test")
28
- c.echo("DATA")
29
+ c.echo("DATA")
@@ -3,7 +3,8 @@ require 'celluloid/io'
3
3
 
4
4
  class EchoUNIXServer
5
5
  include Celluloid::IO
6
-
6
+ finalizer :finalize
7
+
7
8
  attr_reader :socket_path, :server
8
9
 
9
10
  def initialize(socket_path)
@@ -23,7 +24,7 @@ class EchoUNIXServer
23
24
  puts "*** gets data #{data}"
24
25
  socket.write(data)
25
26
  end
26
-
27
+
27
28
  rescue EOFError
28
29
  puts "*** disconnected"
29
30
 
@@ -23,11 +23,16 @@ module Celluloid
23
23
  klass.mailbox_class Celluloid::IO::Mailbox
24
24
  end
25
25
 
26
+ def self.evented?
27
+ actor = Thread.current[:celluloid_actor]
28
+ actor && actor.mailbox.is_a?(Celluloid::IO::Mailbox)
29
+ end
30
+
26
31
  def wait_readable(io)
27
32
  io = io.to_io
28
- actor = Thread.current[:celluloid_actor]
29
- if actor && actor.mailbox.is_a?(Celluloid::IO::Mailbox)
30
- actor.mailbox.reactor.wait_readable(io)
33
+ if IO.evented?
34
+ mailbox = Thread.current[:celluloid_mailbox]
35
+ mailbox.reactor.wait_readable(io)
31
36
  else
32
37
  Kernel.select([io])
33
38
  end
@@ -37,9 +42,9 @@ module Celluloid
37
42
 
38
43
  def wait_writable(io)
39
44
  io = io.to_io
40
- actor = Thread.current[:celluloid_actor]
41
- if actor && actor.mailbox.is_a?(Celluloid::IO::Mailbox)
42
- actor.mailbox.reactor.wait_writable(io)
45
+ if IO.evented?
46
+ mailbox = Thread.current[:celluloid_mailbox]
47
+ mailbox.reactor.wait_writable(io)
43
48
  else
44
49
  Kernel.select([], [io])
45
50
  end
@@ -1,79 +1,9 @@
1
1
  module Celluloid
2
2
  module IO
3
3
  # An alternative implementation of Celluloid::Mailbox using Reactor
4
- class Mailbox < Celluloid::Mailbox
5
- attr_reader :reactor
6
-
7
- def initialize(reactor = nil)
8
- super()
9
- # @condition won't be used in the class.
10
- @reactor = reactor || Reactor.new
11
- end
12
-
13
- # Add a message to the Mailbox
14
- def <<(message)
15
- @mutex.lock
16
- begin
17
- if message.is_a?(SystemEvent)
18
- # Silently swallow system events sent to dead actors
19
- return if @dead
20
-
21
- # SystemEvents are high priority messages so they get added to the
22
- # head of our message queue instead of the end
23
- @messages.unshift message
24
- else
25
- raise MailboxError, "dead recipient" if @dead
26
- @messages << message
27
- end
28
-
29
- current_actor = Thread.current[:celluloid_actor]
30
- @reactor.wakeup unless current_actor && current_actor.mailbox == self
31
- rescue IOError
32
- raise MailboxError, "dead recipient"
33
- ensure
34
- @mutex.unlock rescue nil
35
- end
36
- nil
37
- end
38
-
39
- # Receive a message from the Mailbox
40
- def receive(timeout = nil, &block)
41
- message = next_message(block)
42
-
43
- until message
44
- if timeout
45
- now = Time.now
46
- wait_until ||= now + timeout
47
- wait_interval = wait_until - now
48
- return if wait_interval < 0
49
- else
50
- wait_interval = nil
51
- end
52
-
53
- @reactor.run_once(wait_interval)
54
- message = next_message(block)
55
- end
56
-
57
- message
58
- rescue IOError
59
- shutdown # force shutdown of the mailbox
60
- raise MailboxShutdown, "mailbox shutdown called during receive"
61
- end
62
-
63
- # Obtain the next message from the mailbox that matches the given block
64
- def next_message(block)
65
- @mutex.lock
66
- begin
67
- super(&block)
68
- ensure
69
- @mutex.unlock rescue nil
70
- end
71
- end
72
-
73
- # Cleanup any IO objects this Mailbox may be using
74
- def shutdown
75
- @reactor.shutdown
76
- super
4
+ class Mailbox < Celluloid::EventedMailbox
5
+ def initialize
6
+ super(Reactor)
77
7
  end
78
8
  end
79
9
  end
@@ -5,7 +5,7 @@ module Celluloid
5
5
  # SSLServer wraps a TCPServer to provide immediate SSL accept
6
6
  class SSLServer
7
7
  extend Forwardable
8
- def_delegators :@tcp_server, :listen, :shutdown, :close, :closed?, :to_io, :evented?
8
+ def_delegators :@tcp_server, :listen, :shutdown, :close, :closed?, :to_io
9
9
 
10
10
  attr_accessor :start_immediately
11
11
  attr_reader :tcp_server
@@ -29,12 +29,6 @@ module Celluloid
29
29
  @write_latch = Latch.new
30
30
  end
31
31
 
32
- # Are we inside of a Celluloid::IO actor?
33
- def evented?
34
- actor = Thread.current[:celluloid_actor]
35
- actor && actor.mailbox.is_a?(Celluloid::IO::Mailbox)
36
- end
37
-
38
32
  # Wait until the current object is readable
39
33
  def wait_readable; Celluloid::IO.wait_readable(self); end
40
34
 
@@ -195,7 +189,11 @@ module Celluloid
195
189
  # See also #gets
196
190
  def readlines(eol=$/)
197
191
  ary = []
198
- ary << line while line = self.gets(eol)
192
+
193
+ while line = self.gets(eol)
194
+ ary << line
195
+ end
196
+
199
197
  ary
200
198
  end
201
199
 
@@ -215,7 +213,9 @@ module Celluloid
215
213
 
216
214
  # Calls the given block once for each byte in the stream.
217
215
  def each_byte # :yields: byte
218
- yield(c.ord) while c = getc
216
+ while c = getc
217
+ yield(c.ord)
218
+ end
219
219
  end
220
220
 
221
221
  # Reads a one-character string from the stream. Raises an EOFError at end
@@ -24,12 +24,6 @@ module Celluloid
24
24
  @server
25
25
  end
26
26
 
27
- # Are we inside a Celluloid ::IO actor?
28
- def evented?
29
- actor = Thread.current[:celluloid_actor]
30
- actor && actor.mailbox.is_a?(Celluloid::IO::Mailbox)
31
- end
32
-
33
27
  # Convert a Ruby TCPServer into a Celluloid::IO::TCPServer
34
28
  def self.from_ruby_server(ruby_server)
35
29
  server = allocate
@@ -7,7 +7,7 @@ module Celluloid
7
7
  class TCPSocket < Stream
8
8
  extend Forwardable
9
9
 
10
- def_delegators :@socket, :read_nonblock, :write_nonblock, :close, :closed?
10
+ def_delegators :@socket, :read_nonblock, :write_nonblock, :close, :close_read, :close_write, :closed?
11
11
  def_delegators :@socket, :addr, :peeraddr, :setsockopt
12
12
 
13
13
  # Open a TCP socket, yielding it to the given block and closing it
@@ -9,12 +9,6 @@ module Celluloid
9
9
  @socket = ::UDPSocket.new
10
10
  end
11
11
 
12
- # Are we inside of a Celluloid::IO actor?
13
- def evented?
14
- actor = Thread.current[:celluloid_actor]
15
- actor && actor.mailbox.is_a?(Celluloid::IO::Mailbox)
16
- end
17
-
18
12
  # Wait until the socket is readable
19
13
  def wait_readable; Celluloid::IO.wait_readable(self); end
20
14
 
@@ -27,12 +27,6 @@ module Celluloid
27
27
  def to_io
28
28
  @server
29
29
  end
30
-
31
- # Are we inside a Celluloid ::IO actor?
32
- def evented?
33
- actor = Thread.current[:celluloid_actor]
34
- actor && actor.mailbox.is_a?(Celluloid::IO::Mailbox)
35
- end
36
30
  end
37
31
  end
38
32
  end
@@ -1,5 +1,5 @@
1
1
  module Celluloid
2
2
  module IO
3
- VERSION = "0.13.1"
3
+ VERSION = "0.14.0.pre"
4
4
  end
5
5
  end
@@ -25,7 +25,7 @@ describe Celluloid::IO::SSLServer do
25
25
  context "inside Celluloid::IO" do
26
26
  it "should be evented" do
27
27
  with_ssl_server do |subject|
28
- within_io_actor { subject.evented? }.should be_true
28
+ within_io_actor { Celluloid::IO.evented? }.should be_true
29
29
  end
30
30
  end
31
31
 
@@ -33,7 +33,7 @@ describe Celluloid::IO::SSLServer do
33
33
  with_ssl_server do |subject|
34
34
  thread = Thread.new do
35
35
  raw = TCPSocket.new(example_addr, example_ssl_port)
36
- ssl = OpenSSL::SSL::SSLSocket.new(raw, client_context).connect
36
+ OpenSSL::SSL::SSLSocket.new(raw, client_context).connect
37
37
  end
38
38
  peer = within_io_actor { subject.accept }
39
39
  peer.should be_a Celluloid::IO::SSLSocket
@@ -48,7 +48,7 @@ describe Celluloid::IO::SSLServer do
48
48
  context "outside Celluloid::IO" do
49
49
  it "should be blocking" do
50
50
  with_ssl_server do |subject|
51
- subject.should_not be_evented
51
+ Celluloid::IO.should_not be_evented
52
52
  end
53
53
  end
54
54
 
@@ -56,7 +56,7 @@ describe Celluloid::IO::SSLServer do
56
56
  with_ssl_server do |subject|
57
57
  thread = Thread.new do
58
58
  raw = TCPSocket.new(example_addr, example_ssl_port)
59
- ssl = OpenSSL::SSL::SSLSocket.new(raw, client_context).connect
59
+ OpenSSL::SSL::SSLSocket.new(raw, client_context).connect
60
60
  end
61
61
  peer = subject.accept
62
62
  peer.should be_a Celluloid::IO::SSLSocket
@@ -64,34 +64,35 @@ describe Celluloid::IO::SSLSocket do
64
64
  with_ssl_sockets do |ssl_client, ssl_peer|
65
65
  within_io_actor do
66
66
  ssl_peer << request
67
- ssl_client.read(request.size).should == request
67
+ ssl_client.read(request.size).should eq(request)
68
68
 
69
69
  ssl_client << response
70
- ssl_peer.read(response.size).should == response
70
+ ssl_peer.read(response.size).should eq(response)
71
71
  end
72
72
  end
73
73
  end
74
74
 
75
75
  it "starts SSL on a connected TCP socket" do
76
+ pending "JRuby support" if defined?(JRUBY_VERSION)
76
77
  with_raw_sockets do |client, peer|
77
78
  within_io_actor do
78
79
  peer << request
79
- client.read(request.size).should == request
80
+ client.read(request.size).should eq(request)
80
81
 
81
82
  client << response
82
- peer.read(response.size).should == response
83
+ peer.read(response.size).should eq(response)
83
84
 
84
85
  # now that we've written bytes, upgrade to SSL
85
86
  client_thread = Thread.new { OpenSSL::SSL::SSLSocket.new(client).connect }
86
87
  ssl_peer = Celluloid::IO::SSLSocket.new peer, server_context
87
- ssl_peer.should == ssl_peer.accept
88
+ ssl_peer.should eq(ssl_peer.accept)
88
89
  ssl_client = client_thread.value
89
90
 
90
91
  ssl_peer << request
91
- ssl_client.read(request.size).should == request
92
+ ssl_client.read(request.size).should eq(request)
92
93
 
93
94
  ssl_client << response
94
- ssl_peer.read(response.size).should == response
95
+ ssl_peer.read(response.size).should eq(response)
95
96
  end
96
97
  end
97
98
  end
@@ -101,32 +102,33 @@ describe Celluloid::IO::SSLSocket do
101
102
  it "connects to SSL servers over TCP" do
102
103
  with_ssl_sockets do |ssl_client, ssl_peer|
103
104
  ssl_peer << request
104
- ssl_client.read(request.size).should == request
105
+ ssl_client.read(request.size).should eq(request)
105
106
 
106
107
  ssl_client << response
107
- ssl_peer.read(response.size).should == response
108
+ ssl_peer.read(response.size).should eq(response)
108
109
  end
109
110
  end
110
111
 
111
112
  it "starts SSL on a connected TCP socket" do
113
+ pending "JRuby support" if defined?(JRUBY_VERSION)
112
114
  with_raw_sockets do |client, peer|
113
115
  peer << request
114
- client.read(request.size).should == request
116
+ client.read(request.size).should eq(request)
115
117
 
116
118
  client << response
117
- peer.read(response.size).should == response
119
+ peer.read(response.size).should eq(response)
118
120
 
119
121
  # now that we've written bytes, upgrade to SSL
120
122
  client_thread = Thread.new { OpenSSL::SSL::SSLSocket.new(client).connect }
121
123
  ssl_peer = Celluloid::IO::SSLSocket.new peer, server_context
122
- ssl_peer.should == ssl_peer.accept
124
+ ssl_peer.should eq(ssl_peer.accept)
123
125
  ssl_client = client_thread.value
124
126
 
125
127
  ssl_peer << request
126
- ssl_client.read(request.size).should == request
128
+ ssl_client.read(request.size).should eq(request)
127
129
 
128
130
  ssl_client << response
129
- ssl_peer.read(response.size).should == response
131
+ ssl_peer.read(response.size).should eq(response)
130
132
  end
131
133
  end
132
134
  end
@@ -135,13 +137,13 @@ describe Celluloid::IO::SSLSocket do
135
137
  # FIXME: seems bad? o_O
136
138
  pending "wtf is wrong with this on JRuby" if defined? JRUBY_VERSION
137
139
  with_ssl_sockets do |ssl_client|
138
- ssl_client.cert.to_der.should == client_cert.to_der
140
+ ssl_client.cert.to_der.should eq(client_cert.to_der)
139
141
  end
140
142
  end
141
143
 
142
144
  it "knows its peer_cert" do
143
145
  with_ssl_sockets do |ssl_client|
144
- ssl_client.peer_cert.to_der.should == ssl_client.to_io.peer_cert.to_der
146
+ ssl_client.peer_cert.to_der.should eq(ssl_client.to_io.peer_cert.to_der)
145
147
  end
146
148
  end
147
149
 
@@ -155,7 +157,7 @@ describe Celluloid::IO::SSLSocket do
155
157
 
156
158
  it "knows its cipher" do
157
159
  with_ssl_sockets do |ssl_client|
158
- ssl_client.cipher.should == ssl_client.to_io.cipher
160
+ ssl_client.cipher.should eq(ssl_client.to_io.cipher)
159
161
  end
160
162
  end
161
163
 
@@ -164,7 +166,7 @@ describe Celluloid::IO::SSLSocket do
164
166
  pending "jruby-openssl support" if defined? JRUBY_VERSION
165
167
 
166
168
  with_ssl_sockets do |ssl_client|
167
- ssl_client.client_ca.should == ssl_client.to_io.client_ca
169
+ ssl_client.client_ca.should eq(ssl_client.to_io.client_ca)
168
170
  end
169
171
  end
170
172
 
@@ -173,7 +175,7 @@ describe Celluloid::IO::SSLSocket do
173
175
  pending "jruby-openssl support" if defined? JRUBY_VERSION
174
176
 
175
177
  with_ssl_sockets do |ssl_client, ssl_peer|
176
- ssl_client.verify_result.should == OpenSSL::X509::V_ERR_DEPTH_ZERO_SELF_SIGNED_CERT
178
+ ssl_client.verify_result.should eq(OpenSSL::X509::V_ERR_DEPTH_ZERO_SELF_SIGNED_CERT)
177
179
  end
178
180
  end
179
181
 
@@ -7,7 +7,7 @@ describe Celluloid::IO::TCPServer do
7
7
  context "inside Celluloid::IO" do
8
8
  it "should be evented" do
9
9
  with_tcp_server do |subject|
10
- within_io_actor { subject.evented? }.should be_true
10
+ within_io_actor { Celluloid::IO.evented? }.should be_true
11
11
  end
12
12
  end
13
13
 
@@ -26,7 +26,7 @@ describe Celluloid::IO::TCPServer do
26
26
  context "outside Celluloid::IO" do
27
27
  it "should be blocking" do
28
28
  with_tcp_server do |subject|
29
- subject.should_not be_evented
29
+ Celluloid::IO.should_not be_evented
30
30
  end
31
31
  end
32
32
 
@@ -20,7 +20,7 @@ describe Celluloid::IO::TCPSocket do
20
20
 
21
21
  it "should be evented" do
22
22
  with_connected_sockets do |subject|
23
- within_io_actor { subject.evented? }.should be_true
23
+ within_io_actor { Celluloid::IO.evented? }.should be_true
24
24
  end
25
25
  end
26
26
 
@@ -108,6 +108,7 @@ describe Celluloid::IO::TCPSocket do
108
108
  end
109
109
 
110
110
  it "raises IOError when partial reading from a socket the peer closed" do
111
+ pending "async block running on receiver"
111
112
  with_connected_sockets do |subject, peer|
112
113
  actor = ExampleActor.new
113
114
  begin
@@ -140,7 +141,7 @@ describe Celluloid::IO::TCPSocket do
140
141
 
141
142
  it "should be blocking" do
142
143
  with_connected_sockets do |subject|
143
- subject.should_not be_evented
144
+ Celluloid::IO.should_not be_evented
144
145
  end
145
146
  end
146
147
 
@@ -12,18 +12,20 @@ describe Celluloid::IO::UDPSocket do
12
12
 
13
13
  context "inside Celluloid::IO" do
14
14
  it "should be evented" do
15
- within_io_actor { subject.evented? }.should be_true
15
+ within_io_actor { Celluloid::IO.evented? }.should be_true
16
16
  end
17
17
 
18
18
  it "sends and receives packets" do
19
- subject.send payload, 0, example_addr, example_port
20
- subject.recvfrom(payload.size).first.should == payload
19
+ within_io_actor do
20
+ subject.send payload, 0, example_addr, example_port
21
+ subject.recvfrom(payload.size).first.should == payload
22
+ end
21
23
  end
22
24
  end
23
25
 
24
26
  context "outside Celluloid::IO" do
25
27
  it "should be blocking" do
26
- subject.should_not be_evented
28
+ Celluloid::IO.should_not be_evented
27
29
  end
28
30
 
29
31
  it "sends and receives packets" do
@@ -11,7 +11,7 @@ describe Celluloid::IO::UNIXServer do
11
11
  context "inside Celluloid::IO" do
12
12
  it "should be evented" do
13
13
  with_unix_server do |subject|
14
- within_io_actor { subject.evented? }.should be_true
14
+ within_io_actor { Celluloid::IO.evented? }.should be_true
15
15
  end
16
16
  end
17
17
 
@@ -40,7 +40,7 @@ describe Celluloid::IO::UNIXServer do
40
40
  context "outside Celluloid::IO" do
41
41
  it "should be blocking" do
42
42
  with_unix_server do |subject|
43
- subject.should_not be_evented
43
+ Celluloid::IO.should_not be_evented
44
44
  end
45
45
  end
46
46
 
@@ -25,7 +25,7 @@ describe Celluloid::IO::UNIXSocket do
25
25
 
26
26
  it "should be evented" do
27
27
  with_connected_unix_sockets do |subject|
28
- within_io_actor { subject.evented? }.should be_true
28
+ within_io_actor { Celluloid::IO.evented? }.should be_true
29
29
  end
30
30
  end
31
31
 
@@ -112,7 +112,7 @@ describe Celluloid::IO::UNIXSocket do
112
112
 
113
113
  it "should be blocking" do
114
114
  with_connected_unix_sockets do |subject|
115
- subject.should_not be_evented
115
+ Celluloid::IO.should_not be_evented
116
116
  end
117
117
  end
118
118
 
@@ -8,15 +8,25 @@ Coveralls.wear!
8
8
  logfile = File.open(File.expand_path("../../log/test.log", __FILE__), 'a')
9
9
  Celluloid.logger = Logger.new(logfile)
10
10
 
11
+ RSpec.configure do |config|
12
+ config.before do
13
+ Celluloid.shutdown
14
+ Celluloid.boot
15
+ FileUtils.rm("/tmp/cell_sock") if File.exist?("/tmp/cell_sock")
16
+ end
17
+ end
18
+
11
19
  # FIXME: Hax until test termination can be cleaned up
12
20
  module Celluloid
13
21
  class << self
22
+ undef :shutdown
14
23
  def shutdown; end # hax: noop!
15
24
  end
16
25
  end
17
26
 
18
27
  class ExampleActor
19
28
  include Celluloid::IO
29
+ execute_block_on_receiver :wrap
20
30
 
21
31
  def wrap
22
32
  yield
metadata CHANGED
@@ -1,116 +1,102 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: celluloid-io
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.13.1
5
- prerelease:
4
+ version: 0.14.0.pre
6
5
  platform: ruby
7
6
  authors:
8
7
  - Tony Arcieri
9
8
  autorequire:
10
9
  bindir: bin
11
10
  cert_chain: []
12
- date: 2013-04-05 00:00:00.000000000 Z
11
+ date: 2013-05-01 00:00:00.000000000 Z
13
12
  dependencies:
14
13
  - !ruby/object:Gem::Dependency
15
14
  name: celluloid
16
15
  requirement: !ruby/object:Gem::Requirement
17
- none: false
18
16
  requirements:
19
- - - ! '>='
17
+ - - '>='
20
18
  - !ruby/object:Gem::Version
21
19
  version: 0.13.0
22
20
  type: :runtime
23
21
  prerelease: false
24
22
  version_requirements: !ruby/object:Gem::Requirement
25
- none: false
26
23
  requirements:
27
- - - ! '>='
24
+ - - '>='
28
25
  - !ruby/object:Gem::Version
29
26
  version: 0.13.0
30
27
  - !ruby/object:Gem::Dependency
31
28
  name: nio4r
32
29
  requirement: !ruby/object:Gem::Requirement
33
- none: false
34
30
  requirements:
35
- - - ! '>='
31
+ - - '>='
36
32
  - !ruby/object:Gem::Version
37
33
  version: 0.4.0
38
34
  type: :runtime
39
35
  prerelease: false
40
36
  version_requirements: !ruby/object:Gem::Requirement
41
- none: false
42
37
  requirements:
43
- - - ! '>='
38
+ - - '>='
44
39
  - !ruby/object:Gem::Version
45
40
  version: 0.4.0
46
41
  - !ruby/object:Gem::Dependency
47
42
  name: rake
48
43
  requirement: !ruby/object:Gem::Requirement
49
- none: false
50
44
  requirements:
51
- - - ! '>='
45
+ - - '>='
52
46
  - !ruby/object:Gem::Version
53
47
  version: '0'
54
48
  type: :development
55
49
  prerelease: false
56
50
  version_requirements: !ruby/object:Gem::Requirement
57
- none: false
58
51
  requirements:
59
- - - ! '>='
52
+ - - '>='
60
53
  - !ruby/object:Gem::Version
61
54
  version: '0'
62
55
  - !ruby/object:Gem::Dependency
63
56
  name: rspec
64
57
  requirement: !ruby/object:Gem::Requirement
65
- none: false
66
58
  requirements:
67
- - - ! '>='
59
+ - - '>='
68
60
  - !ruby/object:Gem::Version
69
61
  version: '0'
70
62
  type: :development
71
63
  prerelease: false
72
64
  version_requirements: !ruby/object:Gem::Requirement
73
- none: false
74
65
  requirements:
75
- - - ! '>='
66
+ - - '>='
76
67
  - !ruby/object:Gem::Version
77
68
  version: '0'
78
69
  - !ruby/object:Gem::Dependency
79
70
  name: benchmark_suite
80
71
  requirement: !ruby/object:Gem::Requirement
81
- none: false
82
72
  requirements:
83
- - - ! '>='
73
+ - - '>='
84
74
  - !ruby/object:Gem::Version
85
75
  version: '0'
86
76
  type: :development
87
77
  prerelease: false
88
78
  version_requirements: !ruby/object:Gem::Requirement
89
- none: false
90
79
  requirements:
91
- - - ! '>='
80
+ - - '>='
92
81
  - !ruby/object:Gem::Version
93
82
  version: '0'
94
83
  - !ruby/object:Gem::Dependency
95
84
  name: guard-rspec
96
85
  requirement: !ruby/object:Gem::Requirement
97
- none: false
98
86
  requirements:
99
- - - ! '>='
87
+ - - '>='
100
88
  - !ruby/object:Gem::Version
101
89
  version: '0'
102
90
  type: :development
103
91
  prerelease: false
104
92
  version_requirements: !ruby/object:Gem::Requirement
105
- none: false
106
93
  requirements:
107
- - - ! '>='
94
+ - - '>='
108
95
  - !ruby/object:Gem::Version
109
96
  version: '0'
110
97
  - !ruby/object:Gem::Dependency
111
98
  name: rb-fsevent
112
99
  requirement: !ruby/object:Gem::Requirement
113
- none: false
114
100
  requirements:
115
101
  - - ~>
116
102
  - !ruby/object:Gem::Version
@@ -118,7 +104,6 @@ dependencies:
118
104
  type: :development
119
105
  prerelease: false
120
106
  version_requirements: !ruby/object:Gem::Requirement
121
- none: false
122
107
  requirements:
123
108
  - - ~>
124
109
  - !ruby/object:Gem::Version
@@ -180,27 +165,26 @@ files:
180
165
  - tasks/rspec.task
181
166
  homepage: http://github.com/celluloid/celluloid-io
182
167
  licenses: []
168
+ metadata: {}
183
169
  post_install_message:
184
170
  rdoc_options: []
185
171
  require_paths:
186
172
  - lib
187
173
  required_ruby_version: !ruby/object:Gem::Requirement
188
- none: false
189
174
  requirements:
190
- - - ! '>='
175
+ - - '>='
191
176
  - !ruby/object:Gem::Version
192
177
  version: '0'
193
178
  required_rubygems_version: !ruby/object:Gem::Requirement
194
- none: false
195
179
  requirements:
196
- - - ! '>='
180
+ - - '>'
197
181
  - !ruby/object:Gem::Version
198
- version: '0'
182
+ version: 1.3.1
199
183
  requirements: []
200
184
  rubyforge_project:
201
- rubygems_version: 1.8.23
185
+ rubygems_version: 2.0.3
202
186
  signing_key:
203
- specification_version: 3
187
+ specification_version: 4
204
188
  summary: Celluloid::IO allows you to monitor multiple IO objects within a Celluloid
205
189
  actor
206
190
  test_files:
@@ -219,4 +203,3 @@ test_files:
219
203
  - spec/fixtures/server.crt
220
204
  - spec/fixtures/server.key
221
205
  - spec/spec_helper.rb
222
- has_rdoc: