lib/hamlit/parser/haml_util.rb in hamlit-2.2.1 vs lib/hamlit/parser/haml_util.rb in hamlit-2.2.2
- old
+ new
@@ -197,10 +197,12 @@
def contains_interpolation?(str)
/#[\{$@]/ === str
end
# Original Haml::Util.unescape_interpolation
+ # ex) slow_unescape_interpolation('foo#{bar}baz"', escape_html: true)
+ # #=> "\"foo\#{::Hamlit::HamlHelpers.html_escape((bar))}baz\\\"\""
def slow_unescape_interpolation(str, escape_html = nil)
res = ''
rest = ::Hamlit::HamlUtil.handle_interpolation str.dump do |scan|
escapes = (scan[2].size - 1) / 2
char = scan[3] # '{', '@' or '$'
@@ -221,10 +223,13 @@
end
end
res + rest
end
- # Customized Haml::Util.unescape_interpolation to handle escape by Hamlit
+ # Customized Haml::Util.unescape_interpolation to handle escape by Hamlit.
+ # It wraps double quotes to given `str` with escaping `"`.
+ #
+ # ex) unescape_interpolation('foo#{bar}baz"') #=> "\"foo\#{bar}baz\\\"\""
def unescape_interpolation(str)
res = ''
rest = ::Hamlit::HamlUtil.handle_interpolation str.dump do |scan|
escapes = (scan[2].size - 1) / 2
char = scan[3] # '{', '@' or '$'