diff --git a/hamlit.gemspec b/hamlit.gemspec
index 852bc4d3..af4fa695 100644
--- a/hamlit.gemspec
+++ b/hamlit.gemspec
@@ -26,9 +26,11 @@ Gem::Specification.new do |spec|
spec.add_development_dependency 'bundler', '~> 1.10'
spec.add_development_dependency 'coffee-script'
spec.add_development_dependency 'faml', '>= 0.3.3'
+ spec.add_development_dependency 'less'
spec.add_development_dependency 'minitest-reporters', '~> 1.1'
spec.add_development_dependency 'rails', '>= 4.0.0'
spec.add_development_dependency 'rake', '~> 10.0'
+ spec.add_development_dependency 'therubyracer'
spec.add_development_dependency 'thor', '~> 0.19'
spec.add_development_dependency 'unindent'
end
diff --git a/lib/hamlit/filters.rb b/lib/hamlit/filters.rb
index d127cd4c..cb1504cb 100644
--- a/lib/hamlit/filters.rb
+++ b/lib/hamlit/filters.rb
@@ -3,6 +3,7 @@ require 'hamlit/filters/tilt_base'
require 'hamlit/filters/coffee'
require 'hamlit/filters/css'
require 'hamlit/filters/escaped'
+require 'hamlit/filters/less'
require 'hamlit/filters/javascript'
require 'hamlit/filters/plain'
require 'hamlit/filters/preserve'
@@ -26,6 +27,7 @@ module Hamlit
register :coffeescript, Coffee
register :css, Css
register :escaped, Escaped
+ register :less, Less
register :javascript, Javascript
register :plain, Plain
register :preserve, Preserve
diff --git a/lib/hamlit/filters/less.rb b/lib/hamlit/filters/less.rb
new file mode 100644
index 00000000..e71e2ef2
--- /dev/null
+++ b/lib/hamlit/filters/less.rb
@@ -0,0 +1,32 @@
+require 'tilt'
+
+module Hamlit
+ class Filters
+ class Less < TiltBase
+ def compile(node)
+ if Haml::Util.contains_interpolation?(node.value[:text])
+ return runtime_compile(node)
+ end
+
+ temple = [:multi]
+ temple << [:static, "".freeze]
+ temple
+ end
+
+ private
+
+ def runtime_compile(node)
+ source = Haml::Util.unescape_interpolation(node.value[:text])
+ code = "::Hamlit::Filters::TiltBase.render('less', #{source})"
+
+ temple = [:multi]
+ temple << [:static, "".freeze]
+ temple
+ end
+ end
+ end
+end
diff --git a/test/hamlit/filters/less_test.rb b/test/hamlit/filters/less_test.rb
index 8171c298..f86dbe55 100644
--- a/test/hamlit/filters/less_test.rb
+++ b/test/hamlit/filters/less_test.rb
@@ -3,7 +3,6 @@ describe Hamlit::Filters do
describe '#compile' do
it 'renders less filter' do
- skip
assert_render(<<-HAML, <<-HTML, compatible_only: :haml, error_with: :faml)
:less
.users_controller {
@@ -23,7 +22,6 @@ describe Hamlit::Filters do
end
it 'parses string interpolation' do
- skip
assert_render(<<-'HAML', <<-HTML, compatible_only: :haml, error_with: :faml)
:less
.foo {