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 509
def <<(str)
  super
  debug(str)
end
close() click to toggle source
Calls superclass method
# File lib/httpclient/session.rb, line 486
def close
  super
  debug("! CONNECTION CLOSED\n")
end
debug_dev=(debug_dev) click to toggle source
# File lib/httpclient/session.rb, line 482
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 491
def gets(*args)
  str = super
  debug(str)
  str
end
read(*args) click to toggle source
Calls superclass method
# File lib/httpclient/session.rb, line 497
def read(*args)
  str = super
  debug(str)
  str
end
readpartial(*args) click to toggle source
Calls superclass method
# File lib/httpclient/session.rb, line 503
def readpartial(*args)
  str = super
  debug(str)
  str
end

Private Instance Methods

debug(str) click to toggle source
# File lib/httpclient/session.rb, line 516
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