class Temple::Filters::Escapable

Escape dynamic or static expressions. This filter must be used after Temple::HTML::* and before the generators. It can be enclosed with Temple::Filters::DynamicInliner filters to reduce calls to Temple::Utils#escape_html.

@api public

Public Class Methods

new(opts = {}) click to toggle source
Calls superclass method Temple::Mixins::Options::new
# File lib/temple/filters/escapable.rb, line 16
def initialize(opts = {})
  super
  @escape_code = options[:escape_code] ||
    "::Temple::Utils.escape_html#{options[:use_html_safe] ? '_safe' : ''}((%s))"
  @escaper = eval("proc {|v| #{@escape_code % 'v'} }")
  @escape = false
end

Public Instance Methods

on_dynamic(value) click to toggle source
# File lib/temple/filters/escapable.rb, line 36
def on_dynamic(value)
  [:dynamic, @escape ? @escape_code % value : value]
end
on_escape(flag, exp) click to toggle source
# File lib/temple/filters/escapable.rb, line 24
def on_escape(flag, exp)
  old = @escape
  @escape = flag && !options[:disable_escape]
  compile(exp)
ensure
  @escape = old
end
on_static(value) click to toggle source
# File lib/temple/filters/escapable.rb, line 32
def on_static(value)
  [:static, @escape ? @escaper[value] : value]
end