module CFoundry::TraceHelpers
Constants
- PROTECTED_ATTRIBUTES
Public Instance Methods
request_trace(request)
click to toggle source
# File lib/cfoundry/trace_helpers.rb, line 8 def request_trace(request) return nil unless request info = ["REQUEST: #{request[:method]} #{request[:url]}"] info << "REQUEST_HEADERS:" info << header_trace(request[:headers]) info << "REQUEST_BODY: #{request[:body]}" if request[:body] info.join("\n") end
response_trace(response)
click to toggle source
# File lib/cfoundry/trace_helpers.rb, line 18 def response_trace(response) return nil unless response info = ["RESPONSE: [#{response[:status]}]"] info << "RESPONSE_HEADERS:" info << header_trace(response[:headers]) info << "RESPONSE_BODY:" begin parsed_body = MultiJson.load(response[:body]) filter_protected_attributes(parsed_body) info << MultiJson.dump(parsed_body, :pretty => true) rescue info << "#{response[:body]}" end info.join("\n") end
Private Instance Methods
filter_protected_attributes(hash_or_array)
click to toggle source
# File lib/cfoundry/trace_helpers.rb, line 46 def filter_protected_attributes(hash_or_array) if hash_or_array.is_a? Array hash_or_array.each do |value| filter_protected_attributes(value) end else hash_or_array.each do |key, value| if PROTECTED_ATTRIBUTES.include? key hash_or_array[key] = "[PRIVATE DATA HIDDEN]" else if value.is_a?(Hash) || value.is_a?(Array) filter_protected_attributes(value) end end end end end
header_trace(headers)
click to toggle source
# File lib/cfoundry/trace_helpers.rb, line 36 def header_trace(headers) headers.sort.map do |key, value| unless PROTECTED_ATTRIBUTES.include?(key) " #{key} : #{value}" else " #{key} : [PRIVATE DATA HIDDEN]" end end end