From c3aea3755a82ef77f006b57a9c79e42f5bffac07 Mon Sep 17 00:00:00 2001 From: Takashi Kokubun Date: Mon, 30 Mar 2015 17:20:54 +0900 Subject: [PATCH] Add scss filter --- lib/hamlit/compilers/filter.rb | 2 ++ lib/hamlit/filters/scss.rb | 12 ++++++++++++ spec/hamlit/filters/scss_spec.rb | 21 +++++++++++++++++++++ 3 files changed, 35 insertions(+) create mode 100644 lib/hamlit/filters/scss.rb create mode 100644 spec/hamlit/filters/scss_spec.rb diff --git a/lib/hamlit/compilers/filter.rb b/lib/hamlit/compilers/filter.rb index 233dff57..8b201747 100644 --- a/lib/hamlit/compilers/filter.rb +++ b/lib/hamlit/compilers/filter.rb @@ -7,6 +7,7 @@ require 'hamlit/filters/plain' require 'hamlit/filters/preserve' require 'hamlit/filters/ruby' require 'hamlit/filters/sass' +require 'hamlit/filters/scss' module Hamlit module Compilers @@ -25,6 +26,7 @@ module Hamlit register :preserve, Filters::Preserve register :ruby, Filters::Ruby register :sass, Filters::Sass + register :scss, Filters::Scss end def on_haml_filter(name, lines) diff --git a/lib/hamlit/filters/scss.rb b/lib/hamlit/filters/scss.rb new file mode 100644 index 00000000..8a7f253e --- /dev/null +++ b/lib/hamlit/filters/scss.rb @@ -0,0 +1,12 @@ +require 'hamlit/filters/tilt' + +module Hamlit + module Filters + class Scss < Filters::Tilt + def compile(lines) + ast = [:html, :tag, 'style', [:html, :attrs]] + compile_with_tilt('scss', lines.join("\n"), ast) + end + end + end +end diff --git a/spec/hamlit/filters/scss_spec.rb b/spec/hamlit/filters/scss_spec.rb new file mode 100644 index 00000000..f7f4d8cc --- /dev/null +++ b/spec/hamlit/filters/scss_spec.rb @@ -0,0 +1,21 @@ +describe Hamlit::Filters::Scss do + describe '#compile' do + it 'renders scss filter' do + assert_render(<<-HAML, <<-HTML) + :scss + .users_controller { + .show_action { + margin: 10px; + padding: 20px; + } + } + HAML + + HTML + end + end +end