cod 0.4.1 → 0.4.2

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 (3) hide show
  1. data/HISTORY.txt +5 -0
  2. data/lib/cod/tcp_server.rb +13 -1
  3. metadata +16 -16
@@ -1,3 +1,8 @@
1
+ = 0.4.2 / 15Feb2012
2
+
3
+ ! Actively removes clients that have closed the sockets on their end
4
+ (tcp_server)
5
+
1
6
  = 0.4.1 / 23Jan2012
2
7
  + Cod.stdio returns a channel that is linked to this process' stdin and
3
8
  stdout.
@@ -76,6 +76,13 @@ module Cod
76
76
  def to_read_fds
77
77
  @client_sockets
78
78
  end
79
+
80
+ # Returns the number of clients that are connected to this server
81
+ # currently.
82
+ #
83
+ def connections
84
+ @client_sockets.size
85
+ end
79
86
 
80
87
  # --------------------------------------------------------- service/client
81
88
 
@@ -104,7 +111,12 @@ module Cod
104
111
  next unless rr
105
112
 
106
113
  rr.each do |io|
107
- consume_pending io, opts
114
+ if io.eof?
115
+ @client_sockets.delete(io)
116
+ io.close
117
+ else
118
+ consume_pending io, opts
119
+ end
108
120
  end
109
121
 
110
122
  return @messages.shift unless @messages.empty?
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cod
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.1
4
+ version: 0.4.2
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,11 +9,11 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-01-23 00:00:00.000000000 Z
12
+ date: 2012-02-15 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rake
16
- requirement: &70299431388260 !ruby/object:Gem::Requirement
16
+ requirement: &70132592401200 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ! '>='
@@ -21,10 +21,10 @@ dependencies:
21
21
  version: '0'
22
22
  type: :development
23
23
  prerelease: false
24
- version_requirements: *70299431388260
24
+ version_requirements: *70132592401200
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: rspec
27
- requirement: &70299431387140 !ruby/object:Gem::Requirement
27
+ requirement: &70132592400460 !ruby/object:Gem::Requirement
28
28
  none: false
29
29
  requirements:
30
30
  - - ! '>='
@@ -32,10 +32,10 @@ dependencies:
32
32
  version: '0'
33
33
  type: :development
34
34
  prerelease: false
35
- version_requirements: *70299431387140
35
+ version_requirements: *70132592400460
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: flexmock
38
- requirement: &70299431386460 !ruby/object:Gem::Requirement
38
+ requirement: &70132592399720 !ruby/object:Gem::Requirement
39
39
  none: false
40
40
  requirements:
41
41
  - - ! '>='
@@ -43,10 +43,10 @@ dependencies:
43
43
  version: '0'
44
44
  type: :development
45
45
  prerelease: false
46
- version_requirements: *70299431386460
46
+ version_requirements: *70132592399720
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: sdoc
49
- requirement: &70299431385340 !ruby/object:Gem::Requirement
49
+ requirement: &70132592399020 !ruby/object:Gem::Requirement
50
50
  none: false
51
51
  requirements:
52
52
  - - ! '>='
@@ -54,10 +54,10 @@ dependencies:
54
54
  version: '0'
55
55
  type: :development
56
56
  prerelease: false
57
- version_requirements: *70299431385340
57
+ version_requirements: *70132592399020
58
58
  - !ruby/object:Gem::Dependency
59
59
  name: guard
60
- requirement: &70299431384600 !ruby/object:Gem::Requirement
60
+ requirement: &70132592398400 !ruby/object:Gem::Requirement
61
61
  none: false
62
62
  requirements:
63
63
  - - ! '>='
@@ -65,10 +65,10 @@ dependencies:
65
65
  version: '0'
66
66
  type: :development
67
67
  prerelease: false
68
- version_requirements: *70299431384600
68
+ version_requirements: *70132592398400
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: growl
71
- requirement: &70299431383600 !ruby/object:Gem::Requirement
71
+ requirement: &70132592397740 !ruby/object:Gem::Requirement
72
72
  none: false
73
73
  requirements:
74
74
  - - ! '>='
@@ -76,7 +76,7 @@ dependencies:
76
76
  version: '0'
77
77
  type: :development
78
78
  prerelease: false
79
- version_requirements: *70299431383600
79
+ version_requirements: *70132592397740
80
80
  description:
81
81
  email: kaspar.schiess@absurd.li
82
82
  executables: []
@@ -140,7 +140,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
140
140
  version: '0'
141
141
  segments:
142
142
  - 0
143
- hash: 1455579630017282096
143
+ hash: -1652399252235665508
144
144
  required_rubygems_version: !ruby/object:Gem::Requirement
145
145
  none: false
146
146
  requirements:
@@ -149,7 +149,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
149
149
  version: '0'
150
150
  segments:
151
151
  - 0
152
- hash: 1455579630017282096
152
+ hash: -1652399252235665508
153
153
  requirements: []
154
154
  rubyforge_project:
155
155
  rubygems_version: 1.8.10