lib/temple/filters/escape_html.rb
module Temple module Filters class EscapeHTML < Filter temple_dispatch :escape, :html # Activate the usage of html_safe? if it is available (for Rails 3 for example) default_options[:use_html_safe] = ''.respond_to?(:html_safe?) def on_escape_static(value) [:static, options[:use_html_safe] ? escape_html_safe(value) : escape_html(value)] end def on_escape_dynamic(value) [:dynamic, "Temple::Utils.escape_html#{options[:use_html_safe] ? '_safe' : ''}((#{value}))"] end def on_html_staticattrs(*attrs) [:html, :staticattrs, *attrs.map {|k,v| [k, compile!(v)] }] end def on_html_comment(content) [:html, :comment, compile!(content)] end def on_html_tag(name, attrs, closed, content) [:html, :tag, name, compile!(attrs), closed, compile!(content)] end end end end