class Sanitize

def transform_element!(node)

def transform_element!(node)
  output = {
    :attr_whitelist => [],
    :node           => node,
    :whitelist      => false
  }
  @config[:transformers].inject(node) do |transformer_node, transformer|
    transform = transformer.call({
      :config => @config,
      :node   => transformer_node
    })
    if transform.nil?
      transformer_node
    elsif transform.is_a?(Hash)
      if transform[:whitelist_nodes].is_a?(Array)
        @whitelist_nodes += transform[:whitelist_nodes]
        @whitelist_nodes.uniq!
      end
      output[:attr_whitelist]  += transform[:attr_whitelist] if transform[:attr_whitelist].is_a?(Array)
      output[:whitelist]      ||= true if transform[:whitelist]
      output[:node]             = transform[:node].is_a?(Nokogiri::XML::Node) ? transform[:node] : output[:node]
    else
      raise Error, "transformer output must be a Hash or nil"
    end
  end
  node.replace(output[:node]) if node != output[:node]
  return output
end