class HTML::Sanitizer

def process_node(node, result, options)

def process_node(node, result, options)
  result << node.to_s
end

def sanitize(text, options = {})

def sanitize(text, options = {})
  return text unless sanitizeable?(text)
  tokenize(text, options).join
end

def sanitizeable?(text)

def sanitizeable?(text)
  !(text.nil? || text.empty? || !text.index("<"))
end

def tokenize(text, options)

def tokenize(text, options)
  tokenizer = HTML::Tokenizer.new(text)
  result = []
  while token = tokenizer.next
    node = Node.parse(nil, 0, 0, token, false)
    process_node node, result, options
  end
  result
end