30 lines
432 B
Ruby
30 lines
432 B
Ruby
|
require 'socket'
|
||
|
require 'select'
|
||
|
|
||
|
class S2L < Select::Server
|
||
|
attr_accessor :dbs
|
||
|
|
||
|
def init p
|
||
|
super p
|
||
|
@dbs = p[:dbs]
|
||
|
end
|
||
|
|
||
|
def event_new_client a
|
||
|
logger.debug :connection => {:new => a}
|
||
|
{ :clientclass => S2L::Socket, :dbs => @dbs }
|
||
|
end
|
||
|
end
|
||
|
|
||
|
class S2L::Socket < Select::Socket
|
||
|
def init opts
|
||
|
@dbs = opts[ :dbs]
|
||
|
super opts
|
||
|
end
|
||
|
|
||
|
def event_line v
|
||
|
logger.debug :line => v
|
||
|
@dbs.emit v
|
||
|
end
|
||
|
alias emit event_line
|
||
|
end
|