Class: Temple::CoffeeScript::Filters::Escapable

Inherits:
Filter
  • Object
show all
Defined in:
lib/temple/coffee_script/filters/escapable.rb

Instance Method Summary collapse

Methods included from Mixins::IndentDispatcher

#on_indent

Constructor Details

#initialize(opts = {}) ⇒ Escapable

Returns a new instance of Escapable.



10
11
12
13
14
15
16
# File 'lib/temple/coffee_script/filters/escapable.rb', line 10

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

Instance Method Details

#on_dynamic(value) ⇒ Object



30
31
32
# File 'lib/temple/coffee_script/filters/escapable.rb', line 30

def on_dynamic(value)
  [:dynamic, @escape ? "@escape(#{value})" : value]
end

#on_escape(flag, exp) ⇒ Object



18
19
20
21
22
23
24
# File 'lib/temple/coffee_script/filters/escapable.rb', line 18

def on_escape(flag, exp)
  old = @escape
  @escape = flag && !options[:disable_escape]
  compile(exp)
ensure
  @escape = old
end

#on_static(value) ⇒ Object



26
27
28
# File 'lib/temple/coffee_script/filters/escapable.rb', line 26

def on_static(value)
  [:static, @escape ? @escaper[value] : value]
end