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 '$'