module HTTPClient::DebugSocket

Module for intercepting Socket methods and dumps in/out to given debugging device. debug_dev must respond to <<.

Public Instance Methods

<<(str) click to toggle source
Calls superclass method
# File lib/httpclient/session.rb, line 498
def <<(str)
  super
  debug(str)
end
close() click to toggle source
Calls superclass method
# File lib/httpclient/session.rb, line 475
def close
  super
  debug("! CONNECTION CLOSED\n")
end
debug_dev=(debug_dev) click to toggle source
# File lib/httpclient/session.rb, line 471
def debug_dev=(debug_dev)
  @debug_dev = debug_dev
end
gets(*args) click to toggle source
Calls superclass method
# File lib/httpclient/session.rb, line 480
def gets(*args)
  str = super
  debug(str)
  str
end
read(*args) click to toggle source
Calls superclass method
# File lib/httpclient/session.rb, line 486
def read(*args)
  str = super
  debug(str)
  str
end
readpartial(*args) click to toggle source
Calls superclass method
# File lib/httpclient/session.rb, line 492
def readpartial(*args)
  str = super
  debug(str)
  str
end

Private Instance Methods

debug(str) click to toggle source
# File lib/httpclient/session.rb, line 505
def debug(str)
  if str && @debug_dev
    if str.index("\00"")
      require 'hexdump'
      str.force_encoding('BINARY') if str.respond_to?(:force_encoding)
      @debug_dev << HexDump.encode(str).join("\n")
    else
      @debug_dev << str
    end
  end
end