class Savon::RequestLogger

Public Class Methods

new(globals) click to toggle source
# File lib/savon/request_logger.rb, line 6
def initialize(globals)
  @globals = globals
end

Public Instance Methods

log(request, &http_request) click to toggle source
# File lib/savon/request_logger.rb, line 10
def log(request, &http_request)
  log_request(request) if log?
  response = http_request.call
  log_response(response) if log?

  response
end
log?() click to toggle source
# File lib/savon/request_logger.rb, line 22
def log?
  @globals[:log]
end
logger() click to toggle source
# File lib/savon/request_logger.rb, line 18
def logger
  @globals[:logger]
end

Private Instance Methods

body_to_log(body) click to toggle source
# File lib/savon/request_logger.rb, line 43
def body_to_log(body)
  LogMessage.new(body, @globals[:filters], @globals[:pretty_print_xml]).to_s
end
headers_to_log(headers) click to toggle source
# File lib/savon/request_logger.rb, line 39
def headers_to_log(headers)
  headers.map { |key, value| "#{key}: #{value}" }.join(", ")
end
log_request(request) click to toggle source
# File lib/savon/request_logger.rb, line 28
def log_request(request)
  logger.info  "SOAP request: #{request.url}"
  logger.info  headers_to_log(request.headers)
  logger.debug body_to_log(request.body)
end
log_response(response) click to toggle source
# File lib/savon/request_logger.rb, line 34
def log_response(response)
  logger.info  "SOAP response (status #{response.code})"
  logger.debug body_to_log(response.body)
end