Sha256: ac5b32b662b61e6a84fdc82d160bf5efd845142c9b71f600f18ed91fc1cc2bb6

Contents?: true

Size: 894 Bytes

Versions: 3

Compression:

Stored size: 894 Bytes

Contents

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

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
temple-0.1.7 lib/temple/filters/escape_html.rb
temple-0.1.6 lib/temple/filters/escape_html.rb
temple-0.1.5 lib/temple/filters/escape_html.rb