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
|