class GoogleAdsSavon::LogMessage

Public Class Methods

new(message, filters, options = {}) click to toggle source
# File lib/ads_savon/log_message.rb, line 4
def initialize(message, filters, options = {})
  @message = message
  @filters = filters
  @options = options
end

Public Instance Methods

to_s() click to toggle source
# File lib/ads_savon/log_message.rb, line 10
def to_s
  return @message unless pretty? || filter?

  doc = Nokogiri.XML(@message)
  doc = apply_filter(doc) if filter?
  doc.to_xml(pretty_options)
end

Private Instance Methods

apply_filter(doc) click to toggle source
# File lib/ads_savon/log_message.rb, line 28
def apply_filter(doc)
  return doc unless doc.errors.empty?

  @filters.each do |filter|
    apply_filter!(doc, filter)
  end

  doc
end
apply_filter!(doc, filter) click to toggle source
# File lib/ads_savon/log_message.rb, line 38
def apply_filter!(doc, filter)
  doc.xpath("//*[local-name()='#{filter}']").each do |node|
    node.content = "***FILTERED***"
  end
end
filter?() click to toggle source
# File lib/ads_savon/log_message.rb, line 20
def filter?
  @options[:filter] && @filters.any?
end
pretty?() click to toggle source
# File lib/ads_savon/log_message.rb, line 24
def pretty?
  @options[:pretty]
end
pretty_options() click to toggle source
# File lib/ads_savon/log_message.rb, line 44
def pretty_options
  return {} unless pretty?
  { :indent => 2 }
end