Making SASS less of a hassle on read only filesystems. (like Heroku)
Get it from Gemcutter.
gem install hassle -s http://gemcutter.org
By default, SASS compiles CSS into the public/
directory. On platforms like Heroku, this won’t work. Instead, Hassle compiles the SASS for you into tmp/
and serves it up via a Rack::Static
middleware.
Hassle assumes a few basic things about your setup: There’s going to be a tmp/
directory where it can write to, and public/
is where you store your css. A simple example:
$ tree . |-- config.ru |-- public | `-- stylesheets | `-- sass | `-- application.sass `-- tmp `-- hassle `-- stylesheets `-- application.css
With a basic SASS file in public/stylesheets/sass/application.sass
, you can include it in your views with:
<link href="/stylesheets/application.css" media="screen" rel="stylesheet" type="text/css" />
Hassle will look at the default sass directory (public/stylesheets/sass
) and other input directories given in Sass::Plugin.options[:template_location]
. CSS files are then compiled into tmp/
one directory higher than where you specified. Here’s a small example of customization:
Sass::Plugin.options[:template_location] = "./public/css/templates"
And after Hassle runs…
$ tree . |-- config.ru |-- public | `-- css | `-- templates | `-- screen.sass `-- tmp `-- hassle `-- css `-- screen.css
Include this in your views with:
<link href="/css/screen.css" media="screen" rel="stylesheet" type="text/css" />
Here’s how to integrate it with your favorite web framework:
For Rails: script/plugin install git://github.com/pedro/hassle
. Done. Once you’re in production mode, Hassle will kick in and prepare your SASS for all to enjoy.
Here’s a sample config.ru that’s up and running.
require 'sinatra' require 'hassle' require 'haml' get '/' do haml <<EOF %html %head %link{:rel => 'stylesheet', :href => "stylesheets/application.css"} %body %h1 Hassle! EOF end use Hassle run Sinatra::Application
And its wonderful SASS file:
$ cat public/stylesheets/sass/application.sass h1 font-size: 11em color: purple
Found some problems? Post ’em in Issues.
Hassle uses the MIT license. Please check the LICENSE file for more details.