module HTTPClient::DebugSocket

def <<(str)

def <<(str)
  super
  debug(str)
end

def close

def close
  super
  debug("! CONNECTION CLOSED\n")
end

def debug(str)

def debug(str)
  @debug_dev << str if str && @debug_dev
end

def debug_dev=(debug_dev)

def debug_dev=(debug_dev)
  @debug_dev = debug_dev
end

def gets(*args)

def gets(*args)
  str = super
  debug(str)
  str
end

def read(*args)

def read(*args)
  str = super
  debug(str)
  str
end

def readpartial(*args)

def readpartial(*args)
  str = super
  debug(str)
  str
end