Embedded Sass Shim for SassC Ruby
Use sass-embedded
with SassC Ruby!
This library shims sassc
with the sass-embedded
implementation.
Which Sass implementation should I use for my Ruby project?
-
sass-embedded
is recommended for all projects. It is compatible with: -
sassc-embedded
is recommended for existing projects still usingsassc
orsprockets
. It is compatible with: -
sassc
is deprecated. -
sass
has reached end-of-life.
Install
Add this line to your application's Gemfile:
gem 'sassc-embedded'
And then execute:
bundle
Or install it yourself as:
gem install sassc-embedded
Usage
This shim utilizes sass-embedded
to allow you to compile SCSS or SASS syntax to CSS. To compile, use a SassC::Engine
, e.g.:
require 'sassc-embedded'
SassC::Engine.new(sass, style: :compressed).render
Most of the original sassc
options are supported with no behavior difference unless noted otherwise:
:filename
:quiet
-
- ignored:precision
-
- ignored:line_comments
:syntax
:source_map_embed
:source_map_contents
:omit_source_map_url
:source_map_file
:importer
:functions
-
:style
-and:nested
behave as:compact
:expanded
:load_paths
See sassc-ruby
source code and libsass
documentation for details.
Additional sass-embedded
options are supported:
:charset
:importers
:alert_ascii
:alert_color
:fatal_deprecations
:future_deprecations
:logger
:quiet_deps
:silence_deprecations
:verbose
See sass-embedded
documentation for details.
Troubleshooting
The original sassc
gem is still being used instead of sassc-embedded
When launching an application via bundle exec
, it puts sassc-embedded
at higher priority than sassc
in $LOAD_PATH
. You can verify the order of $LOAD_PATH
with the following command:
bundle exec ruby -e 'puts $LOAD_PATH'
If you see sassc
has higher priority than sassc-embedded
, try remove sassc
:
bundle remove sassc
If your application has a transitive dependency on sassc
that cannot be removed, you can use one of the following workarounds.
Workaround One
Add this line to your application's Gemfile:
gem 'sassc', github: 'sass/sassc-ruby', ref: 'refs/pull/233/head'
And then execute:
bundle
The fork of sassc
at sass/sassc-ruby#233 will load the shim whenever require 'sassc'
is invoked, meaning no other code changes needed in your application.
Workaround Two
Add this line to your application's code:
require 'sassc-embedded'