diff --git a/hamlit.gemspec b/hamlit.gemspec index 7ed04d4b..32a1a46f 100644 --- a/hamlit.gemspec +++ b/hamlit.gemspec @@ -26,11 +26,13 @@ Gem::Specification.new do |spec| spec.add_development_dependency "erubis" spec.add_development_dependency "faml" spec.add_development_dependency "haml" + spec.add_development_dependency "less" spec.add_development_dependency "pry" spec.add_development_dependency "rake" spec.add_development_dependency "rspec", ">= 3" spec.add_development_dependency "sass" spec.add_development_dependency "slim" spec.add_development_dependency "tenjin" + spec.add_development_dependency "therubyracer" spec.add_development_dependency "unindent" end diff --git a/lib/hamlit/compilers/filter.rb b/lib/hamlit/compilers/filter.rb index 8b201747..afd34153 100644 --- a/lib/hamlit/compilers/filter.rb +++ b/lib/hamlit/compilers/filter.rb @@ -3,6 +3,7 @@ require 'hamlit/concerns/registerable' require 'hamlit/filters/css' require 'hamlit/filters/escaped' require 'hamlit/filters/javascript' +require 'hamlit/filters/less' require 'hamlit/filters/plain' require 'hamlit/filters/preserve' require 'hamlit/filters/ruby' @@ -22,6 +23,7 @@ module Hamlit register :css, Filters::Css register :escaped, Filters::Escaped register :javascript, Filters::Javascript + register :less, Filters::Less register :plain, Filters::Plain register :preserve, Filters::Preserve register :ruby, Filters::Ruby diff --git a/lib/hamlit/filters/less.rb b/lib/hamlit/filters/less.rb new file mode 100644 index 00000000..b051625d --- /dev/null +++ b/lib/hamlit/filters/less.rb @@ -0,0 +1,12 @@ +require 'hamlit/filters/tilt' + +module Hamlit + module Filters + class Less < Filters::Tilt + def compile(lines) + ast = [:html, :tag, 'style', [:html, :attrs]] + compile_with_tilt('less', lines.join("\n"), ast) + end + end + end +end diff --git a/spec/hamlit/filters/less_spec.rb b/spec/hamlit/filters/less_spec.rb new file mode 100644 index 00000000..5b15a45c --- /dev/null +++ b/spec/hamlit/filters/less_spec.rb @@ -0,0 +1,22 @@ +describe Hamlit::Filters::Less do + describe '#compile' do + it 'renders less filter' do + assert_render(<<-HAML, <<-HTML) + :less + .users_controller { + .show_action { + margin: 10px; + padding: 20px; + } + } + HAML + + HTML + end + end +end