module Temple::Utils
@api public
Constants
- ESCAPE_HTML
Used by #escape_html @api private
- ESCAPE_HTML_PATTERN
On 1.8, there is a kcode = 'u' bug that allows for XSS otherwise TODO doesn't apply to jruby, so a better condition above might be preferable?
Public Instance Methods
empty_exp?(exp)
click to toggle source
Check if expression is empty
@param exp [Array] Temple expression @return true if expression is empty
# File lib/temple/utils.rb, line 81 def empty_exp?(exp) case exp[0] when :multi exp[1..-1].all? {|e| empty_exp?(e) } when :newline true else false end end
escape_html(html)
click to toggle source
Returns an escaped copy of `html`.
@param html [String] The string to escape @return [String] The escaped string
# File lib/temple/utils.rb, line 26 def escape_html(html) EscapeUtils.escape_html(html.to_s, false) end
escape_html_safe(html)
click to toggle source
Returns an escaped copy of `html`. Strings which are declared as html_safe are not escaped.
@param html [String] The string to escape @return [String] The escaped string
# File lib/temple/utils.rb, line 17 def escape_html_safe(html) html.html_safe? ? html : escape_html(html) end
unique_name(prefix = nil)
click to toggle source
Generate unique variable name
@param prefix [String] Variable name prefix @return [String] Variable name
# File lib/temple/utils.rb, line 71 def unique_name(prefix = nil) @unique_name ||= 0 prefix ||= (@unique_prefix ||= self.class.name.gsub('::', '_').downcase) "_#{prefix}#{@unique_name += 1}" end