Class: Relayer::IRCSocketSelector
- Inherits:
-
Object
- Object
- Relayer::IRCSocketSelector
- Defined in:
- lib/relayer/socket.rb
Constant Summary collapse
- @@sockets =
{}
- @@started =
false
Class Method Summary collapse
- .add_irc_socket(socket, client) ⇒ Object
- .instance ⇒ Object
- .select ⇒ Object
- .start! ⇒ Object
- .started? ⇒ Boolean
Class Method Details
.add_irc_socket(socket, client) ⇒ Object
47 48 49 |
# File 'lib/relayer/socket.rb', line 47 def self.add_irc_socket(socket, client) @@sockets[socket] = client end |
.instance ⇒ Object
43 44 45 |
# File 'lib/relayer/socket.rb', line 43 def self.instance @@instance ||= IRCSocketSelector.new end |
.select ⇒ Object
51 52 53 54 55 56 57 58 59 60 |
# File 'lib/relayer/socket.rb', line 51 def self.select sockets = @@sockets.keys readable, writable, exceptioned = IO.select(sockets, nil, nil) readable.each do |socket| client = @@sockets[socket] client.readable end end |
.start! ⇒ Object
66 67 68 69 70 71 72 73 |
# File 'lib/relayer/socket.rb', line 66 def self.start! return if @@sockets.empty? @@started = true while true IRCSocketSelector.select end end |
.started? ⇒ Boolean
62 63 64 |
# File 'lib/relayer/socket.rb', line 62 def self.started? @@started end |