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.



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

def initialize(opts = {})
  super
  @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



28
29
30
# File 'lib/temple/coffee_script/filters/escapable.rb', line 28

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

#on_escape(flag, exp) ⇒ Object



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

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

#on_static(value) ⇒ Object



24
25
26
# File 'lib/temple/coffee_script/filters/escapable.rb', line 24

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