diff --git a/lib/hamlit/text_compiler.rb b/lib/hamlit/text_compiler.rb index 0c9226d5..99454b65 100644 --- a/lib/hamlit/text_compiler.rb +++ b/lib/hamlit/text_compiler.rb @@ -1,17 +1,9 @@ require 'temple/html/filter' -# NOTE: This compiler has an extremely bad effect for performance. -# We should optimize this. module Hamlit class TextCompiler < Temple::HTML::Filter def on_haml_text(exp) - compile_text(exp) - end - - private - - def compile_text(exp) - [:dynamic, %Q{"#{exp.gsub(/"/, '\"')}"}] + [:static, exp] end end end diff --git a/spec/hamlit/filters/css_spec.rb b/spec/hamlit/filters/css_spec.rb index 8f38a92c..c4d6473b 100644 --- a/spec/hamlit/filters/css_spec.rb +++ b/spec/hamlit/filters/css_spec.rb @@ -14,5 +14,20 @@ describe Hamlit::Filters::Css do HTML end + + it 'parses string interpolation' do + assert_render(<<-HAML, <<-HTML) + :css + .foo { + width: #{100 * 3}px; + } + HAML + + HTML + end end end diff --git a/spec/hamlit/filters/javascript_spec.rb b/spec/hamlit/filters/javascript_spec.rb index 10348caa..cb139643 100644 --- a/spec/hamlit/filters/javascript_spec.rb +++ b/spec/hamlit/filters/javascript_spec.rb @@ -67,5 +67,16 @@ describe Hamlit::Filters::Javascript do HTML end + + it 'parses string interpolation' do + assert_render(<<-HAML, <<-HTML) + :javascript + var a = #{[1, 2]}; + HAML + + HTML + end end end