Support scss

This commit is contained in:
Takashi Kokubun 2015-10-28 23:48:51 +09:00
parent ac04b4a415
commit 3969733ca8
5 changed files with 19 additions and 7 deletions

1
.gitignore vendored
View File

@ -7,3 +7,4 @@
/pkg/
/spec/reports/
/tmp/
.sass-cache

View File

@ -31,6 +31,7 @@ Gem::Specification.new do |spec|
spec.add_development_dependency 'rails', '>= 4.0.0'
spec.add_development_dependency 'rake', '~> 10.0'
spec.add_development_dependency 'redcarpet'
spec.add_development_dependency 'sass'
spec.add_development_dependency 'therubyracer'
spec.add_development_dependency 'thor', '~> 0.19'
spec.add_development_dependency 'unindent'

View File

@ -10,6 +10,7 @@ require 'hamlit/filters/markdown'
require 'hamlit/filters/plain'
require 'hamlit/filters/preserve'
require 'hamlit/filters/ruby'
require 'hamlit/filters/scss'
module Hamlit
class Filters
@ -36,9 +37,11 @@ module Hamlit
register :plain, Plain
register :preserve, Preserve
register :ruby, Ruby
register :scss, Scss
def initialize(options = {})
@options = options
@compilers = {}
end
def compile(node)
@ -52,11 +55,7 @@ module Hamlit
compiler = Filters.registered[name]
raise NotFound.new("FilterCompiler for '#{name}' was not found") unless compiler
compilers[name] ||= compiler.new(@options)
end
def compilers
@compilers ||= {}
@compilers[name] ||= compiler.new(@options)
end
class NotFound < RuntimeError

View File

@ -0,0 +1,13 @@
module Hamlit
class Filters
class Scss < TiltBase
def compile(node)
temple = [:multi]
temple << [:static, "<style>\n".freeze]
temple << compile_with_tilt(node, 'scss', indent_width: 2)
temple << [:static, "</style>".freeze]
temple
end
end
end
end

View File

@ -3,7 +3,6 @@ describe Hamlit::Filters do
describe '#compile' do
it 'renders scss filter' do
skip
assert_render(<<-HAML, <<-HTML)
:scss
.users_controller {
@ -22,7 +21,6 @@ describe Hamlit::Filters do
end
it 'parses string interpolation' do
skip
assert_render(<<-'HAML', <<-HTML)
:scss
.users_controller {