class Haml::Escapable
Like Temple::Filters::Escapable, but with support for escaping by Haml::Herlpers.html_escape and Haml::Herlpers.escape_once.
Constants
- EscapeSafeBuffer
-
Special value of ‘flag` to ignore html_safe?
Public Class Methods
Source
# File lib/haml/escapable.rb, line 10 def initialize(*) super @escape = false @escape_safe_buffer = false end
Calls superclass method
Public Instance Methods
Source
# File lib/haml/escapable.rb, line 39 def on_dynamic(value) [:dynamic, if @escape == :once escape_once_code(value) elsif @escape escape_code(value) else "(#{value}).to_s" end ] end
The same as Haml::AttributeBuilder.build_attributes
Source
# File lib/haml/escapable.rb, line 16 def on_escape(flag, exp) old_escape, old_escape_safe_buffer = @escape, @escape_safe_buffer @escape_safe_buffer = flag.is_a?(EscapeSafeBuffer) @escape = @escape_safe_buffer ? flag.value : flag compile(exp) ensure @escape, @escape_safe_buffer = old_escape, old_escape_safe_buffer end
Source
# File lib/haml/escapable.rb, line 26 def on_static(value) [:static, if @escape == :once escape_once(value) elsif @escape escape(value) else value end ] end
The same as Haml::AttributeBuilder.build_attributes
Private Instance Methods
Source
# File lib/haml/escapable.rb, line 61 def escape(value) if @escape_safe_buffer ::Haml::Helpers.html_escape_without_haml_xss(value) else ::Haml::Helpers.html_escape(value) end end
Source
# File lib/haml/escapable.rb, line 73 def escape_code(value) "::Haml::Helpers.html_escape#{('_without_haml_xss' if @escape_safe_buffer)}((#{value}))" end
Source
# File lib/haml/escapable.rb, line 53 def escape_once(value) if @escape_safe_buffer ::Haml::Helpers.escape_once_without_haml_xss(value) else ::Haml::Helpers.escape_once(value) end end
Source
# File lib/haml/escapable.rb, line 69 def escape_once_code(value) "::Haml::Helpers.escape_once#{('_without_haml_xss' if @escape_safe_buffer)}((#{value}))" end