module Loofah::ScrubBehavior

Mixes scrub! into Document, DocumentFragment, Node and NodeSet.

Traverse the document or fragment, invoking the scrubber on each node.

scrubber must either be one of the symbols representing the built-in scrubbers (see Scrubbers), or a Scrubber instance.

span2div = Loofah::Scrubber.new do |node|
  node.name = "div" if node.name == "span"
end
Loofah.fragment("<span>foo</span><p>bar</p>").scrub!(span2div).to_s
# => "<div>foo</div><p>bar</p>"

or

unsafe_html = "ohai! <div>div is safe</div> <script>but script is not</script>"
Loofah.fragment(unsafe_html).scrub!(:strip).to_s
# => "ohai! <div>div is safe</div> "

Note that this method is called implicitly from Loofah.scrub_fragment and Loofah.scrub_document.

Please see Scrubber for more information on implementation and traversal, and README.rdoc for more example usage.