rubysl-socket 2.0.1 → 2.1.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.
Files changed (181) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +70 -16
  3. data/lib/rubysl/socket.rb +201 -1396
  4. data/lib/rubysl/socket/ancillary_data.rb +56 -0
  5. data/lib/rubysl/socket/bsd.rb +28 -0
  6. data/lib/rubysl/socket/error.rb +67 -0
  7. data/lib/rubysl/socket/foreign.rb +324 -0
  8. data/lib/rubysl/socket/foreign/addrinfo.rb +10 -0
  9. data/lib/rubysl/socket/foreign/hostent.rb +36 -0
  10. data/lib/rubysl/socket/foreign/ifaddrs.rb +129 -0
  11. data/lib/rubysl/socket/foreign/iovec.rb +18 -0
  12. data/lib/rubysl/socket/foreign/linger.rb +41 -0
  13. data/lib/rubysl/socket/foreign/msghdr.rb +41 -0
  14. data/lib/rubysl/socket/foreign/servent.rb +17 -0
  15. data/lib/rubysl/socket/foreign/sockaddr.rb +21 -0
  16. data/lib/rubysl/socket/foreign/sockaddr_in.rb +25 -0
  17. data/lib/rubysl/socket/foreign/sockaddr_in6.rb +25 -0
  18. data/lib/rubysl/socket/foreign/sockaddr_un.rb +29 -0
  19. data/lib/rubysl/socket/ipv6.rb +38 -0
  20. data/lib/rubysl/socket/linux.rb +16 -0
  21. data/lib/rubysl/socket/socket_options.rb +84 -0
  22. data/lib/rubysl/socket/version.rb +1 -1
  23. data/lib/socket.rb +45 -1
  24. data/lib/socket/addrinfo.rb +453 -0
  25. data/lib/socket/ancillary_data.rb +114 -0
  26. data/lib/socket/basic_socket.rb +295 -0
  27. data/lib/socket/constants.rb +41 -0
  28. data/lib/socket/ifaddr.rb +29 -0
  29. data/lib/socket/ip_socket.rb +37 -0
  30. data/lib/socket/mri.rb +928 -0
  31. data/lib/socket/option.rb +96 -0
  32. data/lib/socket/socket.rb +353 -0
  33. data/lib/socket/socket_error.rb +2 -0
  34. data/lib/socket/tcp_server.rb +78 -0
  35. data/lib/socket/tcp_socket.rb +109 -0
  36. data/lib/socket/udp_socket.rb +73 -0
  37. data/lib/socket/unix_server.rb +35 -0
  38. data/lib/socket/unix_socket.rb +78 -0
  39. data/rubysl-socket.gemspec +15 -10
  40. metadata +78 -293
  41. data/.gitignore +0 -17
  42. data/.travis.yml +0 -9
  43. data/Gemfile +0 -4
  44. data/Rakefile +0 -1
  45. data/spec/addrinfo/afamily_spec.rb +0 -5
  46. data/spec/addrinfo/bind_spec.rb +0 -5
  47. data/spec/addrinfo/canonname_spec.rb +0 -5
  48. data/spec/addrinfo/connect_from_spec.rb +0 -5
  49. data/spec/addrinfo/connect_spec.rb +0 -5
  50. data/spec/addrinfo/connect_to_spec.rb +0 -5
  51. data/spec/addrinfo/family_addrinfo_spec.rb +0 -5
  52. data/spec/addrinfo/foreach_spec.rb +0 -5
  53. data/spec/addrinfo/getaddrinfo_spec.rb +0 -5
  54. data/spec/addrinfo/getnameinfo_spec.rb +0 -5
  55. data/spec/addrinfo/inspect_sockaddr_spec.rb +0 -5
  56. data/spec/addrinfo/inspect_spec.rb +0 -5
  57. data/spec/addrinfo/ip_address_spec.rb +0 -5
  58. data/spec/addrinfo/ip_port_spec.rb +0 -5
  59. data/spec/addrinfo/ip_spec.rb +0 -9
  60. data/spec/addrinfo/ip_unpack_spec.rb +0 -5
  61. data/spec/addrinfo/ipv4_loopback_spec.rb +0 -5
  62. data/spec/addrinfo/ipv4_multicast_spec.rb +0 -5
  63. data/spec/addrinfo/ipv4_private_spec.rb +0 -5
  64. data/spec/addrinfo/ipv4_spec.rb +0 -5
  65. data/spec/addrinfo/ipv6_linklocal_spec.rb +0 -5
  66. data/spec/addrinfo/ipv6_loopback_spec.rb +0 -5
  67. data/spec/addrinfo/ipv6_mc_global_spec.rb +0 -5
  68. data/spec/addrinfo/ipv6_mc_linklocal_spec.rb +0 -5
  69. data/spec/addrinfo/ipv6_mc_nodelocal_spec.rb +0 -5
  70. data/spec/addrinfo/ipv6_mc_orglocal_spec.rb +0 -5
  71. data/spec/addrinfo/ipv6_mc_sitelocal_spec.rb +0 -5
  72. data/spec/addrinfo/ipv6_multicast_spec.rb +0 -5
  73. data/spec/addrinfo/ipv6_sitelocal_spec.rb +0 -5
  74. data/spec/addrinfo/ipv6_spec.rb +0 -5
  75. data/spec/addrinfo/ipv6_to_ipv4_spec.rb +0 -5
  76. data/spec/addrinfo/ipv6_unspecified_spec.rb +0 -5
  77. data/spec/addrinfo/ipv6_v4compat_spec.rb +0 -5
  78. data/spec/addrinfo/ipv6_v4mapped_spec.rb +0 -5
  79. data/spec/addrinfo/listen_spec.rb +0 -5
  80. data/spec/addrinfo/marshal_dump_spec.rb +0 -5
  81. data/spec/addrinfo/marshal_load_spec.rb +0 -5
  82. data/spec/addrinfo/pfamily_spec.rb +0 -5
  83. data/spec/addrinfo/protocol_spec.rb +0 -5
  84. data/spec/addrinfo/socktype_spec.rb +0 -5
  85. data/spec/addrinfo/tcp_spec.rb +0 -5
  86. data/spec/addrinfo/to_s_spec.rb +0 -5
  87. data/spec/addrinfo/to_sockaddr_spec.rb +0 -5
  88. data/spec/addrinfo/udp_spec.rb +0 -5
  89. data/spec/addrinfo/unix_path_spec.rb +0 -5
  90. data/spec/addrinfo/unix_spec.rb +0 -9
  91. data/spec/basicsocket/close_read_spec.rb +0 -42
  92. data/spec/basicsocket/close_write_spec.rb +0 -42
  93. data/spec/basicsocket/do_not_reverse_lookup_spec.rb +0 -78
  94. data/spec/basicsocket/for_fd_spec.rb +0 -37
  95. data/spec/basicsocket/getpeername_spec.rb +0 -24
  96. data/spec/basicsocket/getsockname_spec.rb +0 -27
  97. data/spec/basicsocket/getsockopt_spec.rb +0 -54
  98. data/spec/basicsocket/ioctl_spec.rb +0 -22
  99. data/spec/basicsocket/recv_nonblock_spec.rb +0 -6
  100. data/spec/basicsocket/recv_spec.rb +0 -76
  101. data/spec/basicsocket/send_spec.rb +0 -81
  102. data/spec/basicsocket/setsockopt_spec.rb +0 -333
  103. data/spec/basicsocket/shutdown_spec.rb +0 -5
  104. data/spec/constants/constants_spec.rb +0 -63
  105. data/spec/fixtures/classes.rb +0 -174
  106. data/spec/fixtures/send_io.txt +0 -1
  107. data/spec/ipsocket/addr_spec.rb +0 -72
  108. data/spec/ipsocket/getaddress_spec.rb +0 -26
  109. data/spec/ipsocket/peeraddr_spec.rb +0 -79
  110. data/spec/ipsocket/recvfrom_spec.rb +0 -64
  111. data/spec/option/int_spec.rb +0 -27
  112. data/spec/option/linger_spec.rb +0 -52
  113. data/spec/option/new_spec.rb +0 -32
  114. data/spec/shared/pack_sockaddr.rb +0 -26
  115. data/spec/shared/partially_closable_sockets.rb +0 -13
  116. data/spec/shared/recv_nonblock.rb +0 -33
  117. data/spec/shared/socketpair.rb +0 -35
  118. data/spec/socket/accept_nonblock_spec.rb +0 -27
  119. data/spec/socket/accept_spec.rb +0 -1
  120. data/spec/socket/bind_spec.rb +0 -80
  121. data/spec/socket/connect_nonblock_spec.rb +0 -62
  122. data/spec/socket/connect_spec.rb +0 -1
  123. data/spec/socket/for_fd_spec.rb +0 -29
  124. data/spec/socket/getaddrinfo_spec.rb +0 -120
  125. data/spec/socket/gethostbyaddr_spec.rb +0 -1
  126. data/spec/socket/gethostbyname_spec.rb +0 -26
  127. data/spec/socket/gethostname_spec.rb +0 -9
  128. data/spec/socket/getnameinfo_spec.rb +0 -57
  129. data/spec/socket/getservbyname_spec.rb +0 -24
  130. data/spec/socket/listen_spec.rb +0 -21
  131. data/spec/socket/new_spec.rb +0 -109
  132. data/spec/socket/pack_sockaddr_in_spec.rb +0 -6
  133. data/spec/socket/pack_sockaddr_un_spec.rb +0 -6
  134. data/spec/socket/pair_spec.rb +0 -6
  135. data/spec/socket/recvfrom_nonblock_spec.rb +0 -1
  136. data/spec/socket/recvfrom_spec.rb +0 -1
  137. data/spec/socket/sockaddr_in_spec.rb +0 -6
  138. data/spec/socket/sockaddr_un_spec.rb +0 -6
  139. data/spec/socket/socket_spec.rb +0 -37
  140. data/spec/socket/socketpair_spec.rb +0 -6
  141. data/spec/socket/sysaccept_spec.rb +0 -1
  142. data/spec/socket/unpack_sockaddr_in_spec.rb +0 -16
  143. data/spec/socket/unpack_sockaddr_un_spec.rb +0 -2
  144. data/spec/tcpserver/accept_nonblock_spec.rb +0 -30
  145. data/spec/tcpserver/accept_spec.rb +0 -60
  146. data/spec/tcpserver/gets_spec.rb +0 -17
  147. data/spec/tcpserver/listen_spec.rb +0 -1
  148. data/spec/tcpserver/new_spec.rb +0 -88
  149. data/spec/tcpserver/output_spec.rb +0 -8
  150. data/spec/tcpserver/readpartial_spec.rb +0 -8
  151. data/spec/tcpserver/sysaccept_spec.rb +0 -1
  152. data/spec/tcpsocket/gethostbyname_spec.rb +0 -62
  153. data/spec/tcpsocket/new_spec.rb +0 -5
  154. data/spec/tcpsocket/open_spec.rb +0 -5
  155. data/spec/tcpsocket/partially_closable_spec.rb +0 -20
  156. data/spec/tcpsocket/recv_nonblock_spec.rb +0 -31
  157. data/spec/tcpsocket/setsockopt_spec.rb +0 -49
  158. data/spec/tcpsocket/shared/new.rb +0 -85
  159. data/spec/udpsocket/bind_spec.rb +0 -33
  160. data/spec/udpsocket/connect_spec.rb +0 -1
  161. data/spec/udpsocket/new_spec.rb +0 -1
  162. data/spec/udpsocket/open_spec.rb +0 -12
  163. data/spec/udpsocket/recvfrom_nonblock_spec.rb +0 -1
  164. data/spec/udpsocket/send_spec.rb +0 -57
  165. data/spec/unixserver/accept_nonblock_spec.rb +0 -33
  166. data/spec/unixserver/accept_spec.rb +0 -64
  167. data/spec/unixserver/for_fd_spec.rb +0 -32
  168. data/spec/unixserver/new_spec.rb +0 -5
  169. data/spec/unixserver/open_spec.rb +0 -25
  170. data/spec/unixserver/shared/new.rb +0 -23
  171. data/spec/unixsocket/addr_spec.rb +0 -37
  172. data/spec/unixsocket/new_spec.rb +0 -5
  173. data/spec/unixsocket/open_spec.rb +0 -26
  174. data/spec/unixsocket/pair_spec.rb +0 -38
  175. data/spec/unixsocket/partially_closable_spec.rb +0 -25
  176. data/spec/unixsocket/path_spec.rb +0 -29
  177. data/spec/unixsocket/peeraddr_spec.rb +0 -29
  178. data/spec/unixsocket/recv_io_spec.rb +0 -40
  179. data/spec/unixsocket/recvfrom_spec.rb +0 -48
  180. data/spec/unixsocket/send_io_spec.rb +0 -30
  181. data/spec/unixsocket/shared/new.rb +0 -25
data/.gitignore DELETED
@@ -1,17 +0,0 @@
1
- *.gem
2
- *.rbc
3
- .bundle
4
- .config
5
- .yardoc
6
- Gemfile.lock
7
- InstalledFiles
8
- _yardoc
9
- coverage
10
- doc/
11
- lib/bundler/man
12
- pkg
13
- rdoc
14
- spec/reports
15
- test/tmp
16
- test/version_tmp
17
- tmp
@@ -1,9 +0,0 @@
1
- language: ruby
2
- before_install:
3
- - rvm use $RVM --install --binary --fuzzy
4
- - gem update --system
5
- - gem --version
6
- - gem install rubysl-bundler
7
- env:
8
- - RVM=rbx-nightly-d21 RUBYLIB=lib
9
- script: bundle exec mspec spec
data/Gemfile DELETED
@@ -1,4 +0,0 @@
1
- source 'https://rubygems.org'
2
-
3
- # Specify your gem's dependencies in rubysl-socket.gemspec
4
- gemspec
data/Rakefile DELETED
@@ -1 +0,0 @@
1
- require "bundler/gem_tasks"
@@ -1,5 +0,0 @@
1
- require 'socket'
2
-
3
- describe "Addrinfo#afamily" do
4
- it "needs to be reviewed for spec completeness"
5
- end
@@ -1,5 +0,0 @@
1
- require 'socket'
2
-
3
- describe "Addrinfo#bind" do
4
- it "needs to be reviewed for spec completeness"
5
- end
@@ -1,5 +0,0 @@
1
- require 'socket'
2
-
3
- describe "Addrinfo#canonname" do
4
- it "needs to be reviewed for spec completeness"
5
- end
@@ -1,5 +0,0 @@
1
- require 'socket'
2
-
3
- describe "Addrinfo#connect_from" do
4
- it "needs to be reviewed for spec completeness"
5
- end
@@ -1,5 +0,0 @@
1
- require 'socket'
2
-
3
- describe "Addrinfo#connect" do
4
- it "needs to be reviewed for spec completeness"
5
- end
@@ -1,5 +0,0 @@
1
- require 'socket'
2
-
3
- describe "Addrinfo#connect_to" do
4
- it "needs to be reviewed for spec completeness"
5
- end
@@ -1,5 +0,0 @@
1
- require 'socket'
2
-
3
- describe "Addrinfo#family_addrinfo" do
4
- it "needs to be reviewed for spec completeness"
5
- end
@@ -1,5 +0,0 @@
1
- require 'socket'
2
-
3
- describe "Addrinfo.foreach" do
4
- it "needs to be reviewed for spec completeness"
5
- end
@@ -1,5 +0,0 @@
1
- require 'socket'
2
-
3
- describe "Addrinfo.getaddrinfo" do
4
- it "needs to be reviewed for spec completeness"
5
- end
@@ -1,5 +0,0 @@
1
- require 'socket'
2
-
3
- describe "Addrinfo#getnameinfo" do
4
- it "needs to be reviewed for spec completeness"
5
- end
@@ -1,5 +0,0 @@
1
- require 'socket'
2
-
3
- describe "Addrinfo#inspect_sockaddr" do
4
- it "needs to be reviewed for spec completeness"
5
- end
@@ -1,5 +0,0 @@
1
- require 'socket'
2
-
3
- describe "Addrinfo#inspect" do
4
- it "needs to be reviewed for spec completeness"
5
- end
@@ -1,5 +0,0 @@
1
- require 'socket'
2
-
3
- describe "Addrinfo#ip_address" do
4
- it "needs to be reviewed for spec completeness"
5
- end
@@ -1,5 +0,0 @@
1
- require 'socket'
2
-
3
- describe "Addrinfo#ip_port" do
4
- it "needs to be reviewed for spec completeness"
5
- end
@@ -1,9 +0,0 @@
1
- require 'socket'
2
-
3
- describe "Addrinfo.ip" do
4
- it "needs to be reviewed for spec completeness"
5
- end
6
-
7
- describe "Addrinfo#ip?" do
8
- it "needs to be reviewed for spec completeness"
9
- end
@@ -1,5 +0,0 @@
1
- require 'socket'
2
-
3
- describe "Addrinfo#ip_unpack" do
4
- it "needs to be reviewed for spec completeness"
5
- end
@@ -1,5 +0,0 @@
1
- require 'socket'
2
-
3
- describe "Addrinfo#ipv4_loopback?" do
4
- it "needs to be reviewed for spec completeness"
5
- end
@@ -1,5 +0,0 @@
1
- require 'socket'
2
-
3
- describe "Addrinfo#ipv4_multicast?" do
4
- it "needs to be reviewed for spec completeness"
5
- end
@@ -1,5 +0,0 @@
1
- require 'socket'
2
-
3
- describe "Addrinfo#ipv4_private?" do
4
- it "needs to be reviewed for spec completeness"
5
- end
@@ -1,5 +0,0 @@
1
- require 'socket'
2
-
3
- describe "Addrinfo#ipv4?" do
4
- it "needs to be reviewed for spec completeness"
5
- end
@@ -1,5 +0,0 @@
1
- require 'socket'
2
-
3
- describe "Addrinfo#ipv6_linklocal?" do
4
- it "needs to be reviewed for spec completeness"
5
- end
@@ -1,5 +0,0 @@
1
- require 'socket'
2
-
3
- describe "Addrinfo#ipv6_loopback?" do
4
- it "needs to be reviewed for spec completeness"
5
- end
@@ -1,5 +0,0 @@
1
- require 'socket'
2
-
3
- describe "Addrinfo#ipv6_mc_global?" do
4
- it "needs to be reviewed for spec completeness"
5
- end
@@ -1,5 +0,0 @@
1
- require 'socket'
2
-
3
- describe "Addrinfo#ipv6_mc_linklocal?" do
4
- it "needs to be reviewed for spec completeness"
5
- end
@@ -1,5 +0,0 @@
1
- require 'socket'
2
-
3
- describe "Addrinfo#ipv6_mc_nodelocal?" do
4
- it "needs to be reviewed for spec completeness"
5
- end
@@ -1,5 +0,0 @@
1
- require 'socket'
2
-
3
- describe "Addrinfo#ipv6_mc_orglocal?" do
4
- it "needs to be reviewed for spec completeness"
5
- end
@@ -1,5 +0,0 @@
1
- require 'socket'
2
-
3
- describe "Addrinfo#ipv6_mc_sitelocal?" do
4
- it "needs to be reviewed for spec completeness"
5
- end
@@ -1,5 +0,0 @@
1
- require 'socket'
2
-
3
- describe "Addrinfo#ipv6_multicast?" do
4
- it "needs to be reviewed for spec completeness"
5
- end
@@ -1,5 +0,0 @@
1
- require 'socket'
2
-
3
- describe "Addrinfo#ipv6_sitelocal?" do
4
- it "needs to be reviewed for spec completeness"
5
- end
@@ -1,5 +0,0 @@
1
- require 'socket'
2
-
3
- describe "Addrinfo#ipv6?" do
4
- it "needs to be reviewed for spec completeness"
5
- end
@@ -1,5 +0,0 @@
1
- require 'socket'
2
-
3
- describe "Addrinfo#ipv6_to_ipv4" do
4
- it "needs to be reviewed for spec completeness"
5
- end
@@ -1,5 +0,0 @@
1
- require 'socket'
2
-
3
- describe "Addrinfo#ipv6_unspecified?" do
4
- it "needs to be reviewed for spec completeness"
5
- end
@@ -1,5 +0,0 @@
1
- require 'socket'
2
-
3
- describe "Addrinfo#ipv6_v4compat?" do
4
- it "needs to be reviewed for spec completeness"
5
- end
@@ -1,5 +0,0 @@
1
- require 'socket'
2
-
3
- describe "Addrinfo#ipv6_v4mapped?" do
4
- it "needs to be reviewed for spec completeness"
5
- end
@@ -1,5 +0,0 @@
1
- require 'socket'
2
-
3
- describe "Addrinfo#listen" do
4
- it "needs to be reviewed for spec completeness"
5
- end
@@ -1,5 +0,0 @@
1
- require 'socket'
2
-
3
- describe "Addrinfo#marshal_dump" do
4
- it "needs to be reviewed for spec completeness"
5
- end
@@ -1,5 +0,0 @@
1
- require 'socket'
2
-
3
- describe "Addrinfo#marshal_load" do
4
- it "needs to be reviewed for spec completeness"
5
- end
@@ -1,5 +0,0 @@
1
- require 'socket'
2
-
3
- describe "Addrinfo#pfamily" do
4
- it "needs to be reviewed for spec completeness"
5
- end
@@ -1,5 +0,0 @@
1
- require 'socket'
2
-
3
- describe "Addrinfo#protocol" do
4
- it "needs to be reviewed for spec completeness"
5
- end
@@ -1,5 +0,0 @@
1
- require 'socket'
2
-
3
- describe "Addrinfo#socktype" do
4
- it "needs to be reviewed for spec completeness"
5
- end
@@ -1,5 +0,0 @@
1
- require 'socket'
2
-
3
- describe "Addrinfo.tcp" do
4
- it "needs to be reviewed for spec completeness"
5
- end
@@ -1,5 +0,0 @@
1
- require 'socket'
2
-
3
- describe "Addrinfo#to_s" do
4
- it "needs to be reviewed for spec completeness"
5
- end
@@ -1,5 +0,0 @@
1
- require 'socket'
2
-
3
- describe "Addrinfo#to_sockaddr" do
4
- it "needs to be reviewed for spec completeness"
5
- end
@@ -1,5 +0,0 @@
1
- require 'socket'
2
-
3
- describe "Addrinfo.udp" do
4
- it "needs to be reviewed for spec completeness"
5
- end
@@ -1,5 +0,0 @@
1
- require 'socket'
2
-
3
- describe "Addrinfo#unix_path" do
4
- it "needs to be reviewed for spec completeness"
5
- end
@@ -1,9 +0,0 @@
1
- require 'socket'
2
-
3
- describe "Addrinfo.unix" do
4
- it "needs to be reviewed for spec completeness"
5
- end
6
-
7
- describe "Addrinfo#unix?" do
8
- it "needs to be reviewed for spec completeness"
9
- end
@@ -1,42 +0,0 @@
1
- require File.expand_path('../../fixtures/classes', __FILE__)
2
-
3
- describe "Socket::BasicSocket#close_read" do
4
- before :each do
5
- @server = TCPServer.new(SocketSpecs.port)
6
- end
7
-
8
- after :each do
9
- @server.close unless @server.closed?
10
- end
11
-
12
- it "closes the reading end of the socket" do
13
- @server.close_read
14
- lambda { @server.read }.should raise_error(IOError)
15
- end
16
-
17
- it "it works on sockets with closed ends" do
18
- @server.close_read
19
- lambda { @server.close_read }.should_not raise_error(Exception)
20
- lambda { @server.read }.should raise_error(IOError)
21
- end
22
-
23
- it "does not close the socket" do
24
- @server.close_read
25
- @server.closed?.should be_false
26
- end
27
-
28
- it "fully closes the socket if it was already closed for writing" do
29
- @server.close_write
30
- @server.close_read
31
- @server.closed?.should be_true
32
- end
33
-
34
- it "raises IOError on closed socket" do
35
- @server.close
36
- lambda { @server.close_read }.should raise_error(IOError)
37
- end
38
-
39
- it "returns nil" do
40
- @server.close_read.should be_nil
41
- end
42
- end
@@ -1,42 +0,0 @@
1
- require File.expand_path('../../fixtures/classes', __FILE__)
2
-
3
- describe "Socket::BasicSocket#close_write" do
4
- before :each do
5
- @server = TCPServer.new(SocketSpecs.port)
6
- end
7
-
8
- after :each do
9
- @server.close unless @server.closed?
10
- end
11
-
12
- it "closes the writing end of the socket" do
13
- @server.close_write
14
- lambda { @server.write("foo") }.should raise_error(IOError)
15
- end
16
-
17
- it "works on sockets with closed write ends" do
18
- @server.close_write
19
- lambda { @server.close_write }.should_not raise_error(Exception)
20
- lambda { @server.write("foo") }.should raise_error(IOError)
21
- end
22
-
23
- it "does not close the socket" do
24
- @server.close_write
25
- @server.closed?.should be_false
26
- end
27
-
28
- it "fully closes the socket if it was already closed for reading" do
29
- @server.close_read
30
- @server.close_write
31
- @server.closed?.should be_true
32
- end
33
-
34
- it "raises IOError on closed socket" do
35
- @server.close
36
- lambda { @server.close_write }.should raise_error(IOError)
37
- end
38
-
39
- it "returns nil" do
40
- @server.close_write.should be_nil
41
- end
42
- end