class Sanitize::CSS

def tree!(tree)

Returns:
  • (Array) - Sanitized Crass CSS parse tree.
def tree!(tree)
  preceded_by_property = false
  tree.map! do |node|
    next nil if node.nil?
    case node[:node]
    when :at_rule
      preceded_by_property = false
      next at_rule!(node)
    when :comment
      next node if @config[:allow_comments]
    when :property
      prop = property!(node)
      preceded_by_property = !prop.nil?
      next prop
    when :semicolon
      # Only preserve the semicolon if it was preceded by a whitelisted
      # property. Otherwise, omit it in order to prevent redundant semicolons.
      if preceded_by_property
        preceded_by_property = false
        next node
      end
    when :style_rule
      preceded_by_property = false
      tree!(node[:children])
      next node
    when :whitespace
      next node
    end
    nil
  end
  tree
end