cool.io 1.2.3-x86-mingw32 → 1.4.1-x86-mingw32

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.
Files changed (52) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +3 -0
  3. data/.travis.yml +3 -3
  4. data/CHANGES.md +35 -0
  5. data/README.md +1 -3
  6. data/Rakefile +11 -13
  7. data/cool.io.gemspec +3 -2
  8. data/examples/callbacked_echo_server.rb +24 -0
  9. data/ext/cool.io/extconf.rb +8 -24
  10. data/ext/cool.io/loop.c +1 -1
  11. data/ext/iobuffer/iobuffer.c +2 -0
  12. data/ext/libev/Changes +123 -4
  13. data/ext/libev/LICENSE +2 -1
  14. data/ext/libev/README +8 -8
  15. data/ext/libev/ev.c +313 -144
  16. data/ext/libev/ev.h +18 -10
  17. data/ext/libev/ev_epoll.c +4 -1
  18. data/ext/libev/ev_kqueue.c +1 -1
  19. data/ext/libev/ev_select.c +3 -4
  20. data/ext/libev/ev_vars.h +3 -2
  21. data/ext/libev/ev_win32.c +1 -1
  22. data/ext/libev/win_select.patch +115 -0
  23. data/lib/cool.io.rb +6 -4
  24. data/lib/cool.io/dns_resolver.rb +4 -10
  25. data/lib/cool.io/dsl.rb +6 -2
  26. data/lib/cool.io/io.rb +36 -16
  27. data/lib/cool.io/loop.rb +3 -11
  28. data/lib/cool.io/meta.rb +2 -2
  29. data/lib/cool.io/version.rb +4 -2
  30. data/spec/async_watcher_spec.rb +5 -5
  31. data/spec/dns_spec.rb +11 -7
  32. data/spec/iobuffer_spec.rb +147 -0
  33. data/spec/spec_helper.rb +2 -2
  34. data/spec/stat_watcher_spec.rb +3 -3
  35. data/spec/tcp_server_spec.rb +98 -5
  36. data/spec/tcp_socket_spec.rb +185 -0
  37. data/spec/timer_watcher_spec.rb +23 -19
  38. data/spec/udp_socket_spec.rb +58 -0
  39. data/spec/unix_listener_spec.rb +7 -7
  40. data/spec/unix_server_spec.rb +7 -7
  41. metadata +83 -103
  42. data/examples/httpclient.rb +0 -38
  43. data/ext/http11_client/.gitignore +0 -5
  44. data/ext/http11_client/LICENSE +0 -31
  45. data/ext/http11_client/ext_help.h +0 -14
  46. data/ext/http11_client/extconf.rb +0 -6
  47. data/ext/http11_client/http11_client.c +0 -300
  48. data/ext/http11_client/http11_parser.c +0 -403
  49. data/ext/http11_client/http11_parser.h +0 -48
  50. data/ext/http11_client/http11_parser.rl +0 -173
  51. data/lib/cool.io/eventmachine.rb +0 -234
  52. data/lib/cool.io/http_client.rb +0 -427
@@ -4,15 +4,19 @@ describe Cool.io::TimerWatcher do
4
4
 
5
5
  interval = 0.010
6
6
 
7
+ let :loop do
8
+ Cool.io::Loop.new
9
+ end
10
+
7
11
  it "can have the on_timer callback defined after creation" do
8
12
  @watcher = Cool.io::TimerWatcher.new(interval, true)
9
13
  nr = '0'
10
- @watcher.on_timer { nr.succ! }.should == nil
11
- @watcher.attach(Cool.io::Loop.default).should == @watcher
12
- nr.should == '0'
14
+ expect(@watcher.on_timer { nr.succ! }).to be_nil
15
+ expect(@watcher.attach(loop)).to eq(@watcher)
16
+ expect(nr).to eq('0')
13
17
  sleep interval
14
- Cool.io::Loop.default.run_once
15
- nr.should == '1'
18
+ loop.run_once
19
+ expect(nr).to eq('1')
16
20
  end
17
21
 
18
22
  it "can be subclassed" do
@@ -24,29 +28,29 @@ describe Cool.io::TimerWatcher do
24
28
  end
25
29
  end
26
30
  @watcher = MyTimerWatcher.new(interval, true)
27
- @watcher.attach(Cool.io::Loop.default).should == @watcher
28
- MyTimerWatcher::TMP.should == '0'
31
+ expect(@watcher.attach(loop)).to eq(@watcher)
32
+ expect(MyTimerWatcher::TMP).to eq('0')
29
33
  sleep interval
30
- Cool.io::Loop.default.run_once
31
- MyTimerWatcher::TMP.should == '1'
34
+ loop.run_once
35
+ expect(MyTimerWatcher::TMP).to eq('1')
32
36
  end
33
37
 
34
38
  it "can have the on_timer callback redefined between runs" do
35
39
  @watcher = Cool.io::TimerWatcher.new(interval, true)
36
40
  nr = '0'
37
- @watcher.on_timer { nr.succ! }.should == nil
38
- @watcher.attach(Cool.io::Loop.default).should == @watcher
39
- nr.should == '0'
41
+ expect(@watcher.on_timer { nr.succ! }).to be_nil
42
+ expect(@watcher.attach(loop)).to eq(@watcher)
43
+ expect(nr).to eq('0')
40
44
  sleep interval
41
- Cool.io::Loop.default.run_once
42
- nr.should == '1'
45
+ loop.run_once
46
+ expect(nr).to eq('1')
43
47
  @watcher.detach
44
- @watcher.on_timer { nr = :foo }.should == nil
45
- @watcher.attach(Cool.io::Loop.default).should == @watcher
46
- nr.should == '1'
48
+ expect(@watcher.on_timer { nr = :foo }).to be_nil
49
+ expect(@watcher.attach(loop)).to eq(@watcher)
50
+ expect(nr).to eq('1')
47
51
  sleep interval
48
- Cool.io::Loop.default.run_once
49
- nr.should == :foo
52
+ loop.run_once
53
+ expect(nr).to eq(:foo)
50
54
  end
51
55
 
52
56
  after :each do
@@ -0,0 +1,58 @@
1
+ require File.expand_path('../spec_helper', __FILE__)
2
+
3
+ describe "Coolio::UDPSocket" do
4
+ let :loop do
5
+ Coolio::Loop.new
6
+ end
7
+
8
+ before :each do
9
+ @echo = UDPSocket.open
10
+ @echo.bind nil, 0
11
+ @port = @echo.addr[1]
12
+
13
+ @running = true
14
+ @echo_thread = Thread.new do
15
+ while @running
16
+ begin
17
+ msg, sender = @echo.recvfrom_nonblock(3)
18
+ @echo.send(msg + "bbb", 0, sender[3], sender[1])
19
+ rescue IO::WaitReadable
20
+ end
21
+ Thread.pass
22
+ end
23
+ end
24
+ end
25
+
26
+ after :each do
27
+ @running = false
28
+ @echo_thread.join
29
+ @echo.close
30
+ end
31
+
32
+ class Readable < Cool.io::IOWatcher
33
+ attr :socket, :received
34
+ def initialize
35
+ @socket = UDPSocket.new
36
+ super(@socket)
37
+ end
38
+
39
+ def on_readable
40
+ @received = @socket.recvfrom_nonblock(6).first
41
+ end
42
+ end
43
+
44
+ it "receive message #on_readable 5 times" do
45
+ 5.times do
46
+ begin
47
+ r = Readable.new
48
+ r.socket.send "aaa", 0, "localhost", @port
49
+
50
+ loop.attach r
51
+ loop.run_once
52
+ expect(r.received).to eq "aaabbb"
53
+ ensure
54
+ r.detach
55
+ end
56
+ end
57
+ end
58
+ end
@@ -1,25 +1,25 @@
1
1
  require File.expand_path('../spec_helper', __FILE__)
2
2
  require 'tempfile'
3
3
 
4
- describe Cool.io::UNIXListener, :env => :win do
4
+ describe Cool.io::UNIXListener, :env => :exclude_win do
5
5
 
6
6
  before :each do
7
7
  @tmp = Tempfile.new('coolio_unix_listener_spec')
8
- File.unlink(@tmp.path).should == 1
9
- File.exist?(@tmp.path).should == false
8
+ expect(File.unlink(@tmp.path)).to eq(1)
9
+ expect(File.exist?(@tmp.path)).to eq(false)
10
10
  end
11
11
 
12
12
  it "creates a new UNIXListener" do
13
13
  listener = Cool.io::UNIXListener.new(@tmp.path)
14
- File.socket?(@tmp.path).should == true
14
+ expect(File.socket?(@tmp.path)).to eq(true)
15
15
  end
16
16
 
17
17
  it "builds off an existing UNIXServer" do
18
18
  unix_server = UNIXServer.new(@tmp.path)
19
- File.socket?(@tmp.path).should == true
19
+ expect(File.socket?(@tmp.path)).to eq(true)
20
20
  listener = Cool.io::UNIXListener.new(unix_server)
21
- File.socket?(@tmp.path).should == true
22
- listener.fileno.should == unix_server.fileno
21
+ expect(File.socket?(@tmp.path)).to eq(true)
22
+ expect(listener.fileno).to eq(unix_server.fileno)
23
23
  end
24
24
 
25
25
  end
@@ -1,27 +1,27 @@
1
1
  require File.expand_path('../spec_helper', __FILE__)
2
2
  require 'tempfile'
3
3
 
4
- describe Cool.io::UNIXServer, :env => :win do
4
+ describe Cool.io::UNIXServer, :env => :exclude_win do
5
5
 
6
6
  before :each do
7
7
  @tmp = Tempfile.new('coolio_unix_server_spec')
8
- File.unlink(@tmp.path).should == 1
9
- File.exist?(@tmp.path).should == false
8
+ expect(File.unlink(@tmp.path)).to eq(1)
9
+ expect(File.exist?(@tmp.path)).to eq(false)
10
10
  end
11
11
 
12
12
  it "creates a new Cool.io::UNIXServer" do
13
13
  listener = Cool.io::UNIXListener.new(@tmp.path)
14
14
  listener.listen(24)
15
- File.socket?(@tmp.path).should == true
15
+ expect(File.socket?(@tmp.path)).to eq(true)
16
16
  end
17
17
 
18
18
  it "builds off an existing ::UNIXServer" do
19
19
  unix_server = ::UNIXServer.new(@tmp.path)
20
- File.socket?(@tmp.path).should == true
20
+ expect(File.socket?(@tmp.path)).to eq(true)
21
21
  listener = Cool.io::UNIXServer.new(unix_server, Coolio::UNIXSocket)
22
22
  listener.listen(24)
23
- File.socket?(@tmp.path).should == true
24
- listener.fileno.should == unix_server.fileno
23
+ expect(File.socket?(@tmp.path)).to eq(true)
24
+ expect(listener.fileno).to eq(unix_server.fileno)
25
25
  end
26
26
 
27
27
  end
metadata CHANGED
@@ -1,98 +1,96 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: cool.io
3
- version: !ruby/object:Gem::Version
4
- hash: 25
5
- prerelease:
6
- segments:
7
- - 1
8
- - 2
9
- - 3
10
- version: 1.2.3
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.4.1
11
5
  platform: x86-mingw32
12
- authors:
6
+ authors:
13
7
  - Tony Arcieri
14
8
  - Masahiro Nakagawa
15
9
  autorequire:
16
10
  bindir: bin
17
11
  cert_chain: []
18
-
19
- date: 2014-04-26 00:00:00 -07:00
20
- default_executable:
21
- dependencies:
22
- - !ruby/object:Gem::Dependency
23
- type: :development
24
- requirement: &id001 !ruby/object:Gem::Requirement
25
- none: false
26
- requirements:
27
- - - ~>
28
- - !ruby/object:Gem::Version
29
- hash: 57
30
- segments:
31
- - 0
32
- - 8
33
- - 3
34
- version: 0.8.3
12
+ date: 2015-10-02 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
35
15
  name: rake-compiler
36
- version_requirements: *id001
16
+ requirement: !ruby/object:Gem::Requirement
17
+ requirements:
18
+ - - "~>"
19
+ - !ruby/object:Gem::Version
20
+ version: 0.9.5
21
+ type: :development
37
22
  prerelease: false
38
- - !ruby/object:Gem::Dependency
23
+ version_requirements: !ruby/object:Gem::Requirement
24
+ requirements:
25
+ - - "~>"
26
+ - !ruby/object:Gem::Version
27
+ version: 0.9.5
28
+ - !ruby/object:Gem::Dependency
29
+ name: rake-compiler-dock
30
+ requirement: !ruby/object:Gem::Requirement
31
+ requirements:
32
+ - - "~>"
33
+ - !ruby/object:Gem::Version
34
+ version: 0.4.3
39
35
  type: :development
40
- requirement: &id002 !ruby/object:Gem::Requirement
41
- none: false
42
- requirements:
36
+ prerelease: false
37
+ version_requirements: !ruby/object:Gem::Requirement
38
+ requirements:
39
+ - - "~>"
40
+ - !ruby/object:Gem::Version
41
+ version: 0.4.3
42
+ - !ruby/object:Gem::Dependency
43
+ name: rspec
44
+ requirement: !ruby/object:Gem::Requirement
45
+ requirements:
43
46
  - - ">="
44
- - !ruby/object:Gem::Version
45
- hash: 59
46
- segments:
47
- - 2
48
- - 13
49
- - 0
47
+ - !ruby/object:Gem::Version
50
48
  version: 2.13.0
51
- name: rspec
52
- version_requirements: *id002
53
- prerelease: false
54
- - !ruby/object:Gem::Dependency
55
49
  type: :development
56
- requirement: &id003 !ruby/object:Gem::Requirement
57
- none: false
58
- requirements:
50
+ prerelease: false
51
+ version_requirements: !ruby/object:Gem::Requirement
52
+ requirements:
59
53
  - - ">="
60
- - !ruby/object:Gem::Version
61
- hash: 31
62
- segments:
63
- - 3
64
- - 6
65
- - 0
66
- version: 3.6.0
54
+ - !ruby/object:Gem::Version
55
+ version: 2.13.0
56
+ - !ruby/object:Gem::Dependency
67
57
  name: rdoc
68
- version_requirements: *id003
58
+ requirement: !ruby/object:Gem::Requirement
59
+ requirements:
60
+ - - ">="
61
+ - !ruby/object:Gem::Version
62
+ version: 3.6.0
63
+ type: :development
69
64
  prerelease: false
70
- description: Cool.io provides a high performance event framework for Ruby which uses the libev C library
71
- email:
65
+ version_requirements: !ruby/object:Gem::Requirement
66
+ requirements:
67
+ - - ">="
68
+ - !ruby/object:Gem::Version
69
+ version: 3.6.0
70
+ description: Cool.io provides a high performance event framework for Ruby which uses
71
+ the libev C library
72
+ email:
72
73
  - tony.arcieri@gmail.com
73
74
  - repeatedly@gmail.com
74
75
  executables: []
75
-
76
76
  extensions: []
77
-
78
77
  extra_rdoc_files: []
79
-
80
- files:
81
- - .gitignore
82
- - .rspec
83
- - .travis.yml
78
+ files:
79
+ - ".gitignore"
80
+ - ".rspec"
81
+ - ".travis.yml"
84
82
  - CHANGES.md
85
83
  - Gemfile
86
84
  - LICENSE
87
85
  - README.md
88
86
  - Rakefile
89
87
  - cool.io.gemspec
88
+ - examples/callbacked_echo_server.rb
90
89
  - examples/dslified_echo_client.rb
91
90
  - examples/dslified_echo_server.rb
92
91
  - examples/echo_client.rb
93
92
  - examples/echo_server.rb
94
93
  - examples/google.rb
95
- - examples/httpclient.rb
96
94
  - ext/cool.io/.gitignore
97
95
  - ext/cool.io/cool.io.h
98
96
  - ext/cool.io/cool.io_ext.c
@@ -106,14 +104,6 @@ files:
106
104
  - ext/cool.io/utils.c
107
105
  - ext/cool.io/watcher.c
108
106
  - ext/cool.io/watcher.h
109
- - ext/http11_client/.gitignore
110
- - ext/http11_client/LICENSE
111
- - ext/http11_client/ext_help.h
112
- - ext/http11_client/extconf.rb
113
- - ext/http11_client/http11_client.c
114
- - ext/http11_client/http11_parser.c
115
- - ext/http11_client/http11_parser.h
116
- - ext/http11_client/http11_parser.rl
117
107
  - ext/iobuffer/extconf.rb
118
108
  - ext/iobuffer/iobuffer.c
119
109
  - ext/libev/Changes
@@ -132,14 +122,19 @@ files:
132
122
  - ext/libev/ev_wrap.h
133
123
  - ext/libev/ruby_gil.patch
134
124
  - ext/libev/test_libev_win32.c
125
+ - ext/libev/win_select.patch
135
126
  - lib/.gitignore
127
+ - lib/2.0/cool.io_ext.so
128
+ - lib/2.0/iobuffer_ext.so
129
+ - lib/2.1/cool.io_ext.so
130
+ - lib/2.1/iobuffer_ext.so
131
+ - lib/2.2/cool.io_ext.so
132
+ - lib/2.2/iobuffer_ext.so
136
133
  - lib/cool.io.rb
137
134
  - lib/cool.io/async_watcher.rb
138
135
  - lib/cool.io/custom_require.rb
139
136
  - lib/cool.io/dns_resolver.rb
140
137
  - lib/cool.io/dsl.rb
141
- - lib/cool.io/eventmachine.rb
142
- - lib/cool.io/http_client.rb
143
138
  - lib/cool.io/io.rb
144
139
  - lib/cool.io/iowatcher.rb
145
140
  - lib/cool.io/listener.rb
@@ -152,51 +147,36 @@ files:
152
147
  - lib/coolio.rb
153
148
  - spec/async_watcher_spec.rb
154
149
  - spec/dns_spec.rb
150
+ - spec/iobuffer_spec.rb
155
151
  - spec/spec_helper.rb
156
152
  - spec/stat_watcher_spec.rb
157
153
  - spec/tcp_server_spec.rb
154
+ - spec/tcp_socket_spec.rb
158
155
  - spec/timer_watcher_spec.rb
156
+ - spec/udp_socket_spec.rb
159
157
  - spec/unix_listener_spec.rb
160
158
  - spec/unix_server_spec.rb
161
- - lib/1.9/iobuffer_ext.so
162
- - lib/2.0/iobuffer_ext.so
163
- - lib/1.9/http11_client.so
164
- - lib/2.0/http11_client.so
165
- - lib/1.9/cool.io_ext.so
166
- - lib/2.0/cool.io_ext.so
167
- has_rdoc: true
168
159
  homepage: http://coolio.github.com
169
160
  licenses: []
170
-
161
+ metadata: {}
171
162
  post_install_message:
172
163
  rdoc_options: []
173
-
174
- require_paths:
164
+ require_paths:
175
165
  - lib
176
- required_ruby_version: !ruby/object:Gem::Requirement
177
- none: false
178
- requirements:
166
+ required_ruby_version: !ruby/object:Gem::Requirement
167
+ requirements:
179
168
  - - ">="
180
- - !ruby/object:Gem::Version
181
- hash: 3
182
- segments:
183
- - 0
184
- version: "0"
185
- required_rubygems_version: !ruby/object:Gem::Requirement
186
- none: false
187
- requirements:
169
+ - !ruby/object:Gem::Version
170
+ version: '0'
171
+ required_rubygems_version: !ruby/object:Gem::Requirement
172
+ requirements:
188
173
  - - ">="
189
- - !ruby/object:Gem::Version
190
- hash: 3
191
- segments:
192
- - 0
193
- version: "0"
174
+ - !ruby/object:Gem::Version
175
+ version: '0'
194
176
  requirements: []
195
-
196
177
  rubyforge_project:
197
- rubygems_version: 1.6.2
178
+ rubygems_version: 2.4.8
198
179
  signing_key:
199
- specification_version: 3
180
+ specification_version: 4
200
181
  summary: A cool framework for doing high performance I/O in Ruby
201
182
  test_files: []
202
-