1
0
Fork 0
mirror of https://github.com/haml/haml.git synced 2022-11-09 12:33:31 -05:00

Optimize string compilation

This commit is contained in:
Takashi Kokubun 2015-11-23 16:56:06 +09:00
parent 548593478f
commit d3ae6ba474

View file

@ -23,10 +23,15 @@ module Hamlit::StringInterpolation
case type
when :static
value = Temple::Utils.escape_html(value) if node.value[:escape_html]
value = ::Hamlit::HamlHelpers.find_and_preserve(value, %w(textarea pre code)) if node.value[:preserve]
temple << [:static, value]
when :dynamic
temple << [:escape, node.value[:escape_html] || node.value[:escape_interpolation], [:dynamic, value]]
if Hamlit::StaticAnalyzer.static?(value)
value = eval(value).to_s
value = Temple::Utils.escape_html(value) if node.value[:escape_html] || node.value[:escape_interpolation]
temple << [:static, value]
else
temple << [:escape, node.value[:escape_html] || node.value[:escape_interpolation], [:dynamic, value]]
end
end
end
end