-
Notifications
You must be signed in to change notification settings - Fork 2.1k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Add sass support via sass-embedded (#1911)
This PR adds support for sass back via https://github.com/ntkme/sass-embedded-host-ruby backed by currently maintained official https://github.com/sass/dart-sass-embedded It requires `tilt>=2.0.11`, which is the first version that introduced support for sass-embedded.
- Loading branch information
Showing
14 changed files
with
254 additions
and
3 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,2 @@ | ||
body | ||
color: red |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,86 @@ | ||
require_relative 'test_helper' | ||
|
||
begin | ||
require 'sass-embedded' | ||
|
||
class SassTest < Minitest::Test | ||
def sass_app(options = {}, &block) | ||
mock_app do | ||
set :views, __dir__ + '/views' | ||
set options | ||
get('/', &block) | ||
end | ||
get '/' | ||
end | ||
|
||
it 'renders inline Sass strings' do | ||
sass_app { sass "#sass\n background-color: white\n" } | ||
assert ok? | ||
assert_equal "#sass {\n background-color: white;\n}", body | ||
end | ||
|
||
it 'defaults content type to css' do | ||
sass_app { sass "#sass\n background-color: white\n" } | ||
assert ok? | ||
assert_equal "text/css;charset=utf-8", response['Content-Type'] | ||
end | ||
|
||
it 'defaults allows setting content type per route' do | ||
sass_app do | ||
content_type :html | ||
sass "#sass\n background-color: white\n" | ||
end | ||
assert ok? | ||
assert_equal "text/html;charset=utf-8", response['Content-Type'] | ||
end | ||
|
||
it 'defaults allows setting content type globally' do | ||
sass_app(:sass => { :content_type => 'html' }) { | ||
sass "#sass\n background-color: white\n" | ||
} | ||
assert ok? | ||
assert_equal "text/html;charset=utf-8", response['Content-Type'] | ||
end | ||
|
||
it 'renders .sass files in views path' do | ||
sass_app { sass :hello } | ||
assert ok? | ||
assert_equal "#sass {\n background-color: white;\n}", body | ||
end | ||
|
||
it 'ignores the layout option' do | ||
sass_app { sass :hello, :layout => :layout2 } | ||
assert ok? | ||
assert_equal "#sass {\n background-color: white;\n}", body | ||
end | ||
|
||
it "raises error if template not found" do | ||
mock_app { get('/') { sass :no_such_template } } | ||
assert_raises(Errno::ENOENT) { get('/') } | ||
end | ||
|
||
it "passes SASS options to the Sass engine" do | ||
sass_app do | ||
sass( | ||
"#sass\n background-color: white\n color: black\n", | ||
:style => :compressed | ||
) | ||
end | ||
assert ok? | ||
assert_equal("#sass{background-color:#fff;color:#000}", body) | ||
end | ||
|
||
it "passes default SASS options to the Sass engine" do | ||
mock_app do | ||
set :sass, {:style => :compressed} # default Sass style is :expanded | ||
get('/') { sass("#sass\n background-color: white\n color: black\n") } | ||
end | ||
get '/' | ||
assert ok? | ||
assert_equal "#sass{background-color:#fff;color:#000}", body | ||
end | ||
end | ||
|
||
rescue LoadError | ||
warn "#{$!}: skipping sass tests" | ||
end |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,88 @@ | ||
require_relative 'test_helper' | ||
|
||
begin | ||
require 'sass-embedded' | ||
|
||
class ScssTest < Minitest::Test | ||
def scss_app(options = {}, &block) | ||
mock_app do | ||
set :views, __dir__ + '/views' | ||
set options | ||
get('/', &block) | ||
end | ||
get '/' | ||
end | ||
|
||
it 'renders inline Scss strings' do | ||
scss_app { scss "#scss {\n background-color: white; }\n" } | ||
assert ok? | ||
assert_equal "#scss {\n background-color: white;\n}", body | ||
end | ||
|
||
it 'defaults content type to css' do | ||
scss_app { scss "#scss {\n background-color: white; }\n" } | ||
assert ok? | ||
assert_equal "text/css;charset=utf-8", response['Content-Type'] | ||
end | ||
|
||
it 'defaults allows setting content type per route' do | ||
scss_app do | ||
content_type :html | ||
scss "#scss {\n background-color: white; }\n" | ||
end | ||
assert ok? | ||
assert_equal "text/html;charset=utf-8", response['Content-Type'] | ||
end | ||
|
||
it 'defaults allows setting content type globally' do | ||
scss_app(:scss => { :content_type => 'html' }) { | ||
scss "#scss {\n background-color: white; }\n" | ||
} | ||
assert ok? | ||
assert_equal "text/html;charset=utf-8", response['Content-Type'] | ||
end | ||
|
||
it 'renders .scss files in views path' do | ||
scss_app { scss :hello } | ||
assert ok? | ||
assert_equal "#scss {\n background-color: white;\n}", body | ||
end | ||
|
||
it 'ignores the layout option' do | ||
scss_app { scss :hello, :layout => :layout2 } | ||
assert ok? | ||
assert_equal "#scss {\n background-color: white;\n}", body | ||
end | ||
|
||
it "raises error if template not found" do | ||
mock_app { get('/') { scss(:no_such_template) } } | ||
assert_raises(Errno::ENOENT) { get('/') } | ||
end | ||
|
||
it "passes scss options to the scss engine" do | ||
scss_app do | ||
scss( | ||
"#scss {\n background-color: white;\n color: black\n}", | ||
:style => :compressed | ||
) | ||
end | ||
assert ok? | ||
assert_equal "#scss{background-color:#fff;color:#000}", body | ||
end | ||
|
||
it "passes default scss options to the scss engine" do | ||
mock_app do | ||
set :scss, {:style => :compressed} # default scss style is :expanded | ||
get('/') { | ||
scss("#scss {\n background-color: white;\n color: black;\n}") | ||
} | ||
end | ||
get '/' | ||
assert ok? | ||
assert_equal "#scss{background-color:#fff;color:#000}", body | ||
end | ||
end | ||
|
||
rescue LoadError | ||
warn "#{$!}: skipping scss tests" | ||
end |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,2 @@ | ||
#sass | ||
+argle-bargle |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,2 @@ | ||
#sass | ||
background-color: white |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,3 @@ | ||
#scss { | ||
background-color: white | ||
} |