h1. Hassle
Making "SASS":http://sass-lang.com/ less of a hassle on read only filesystems. (like "Heroku":http://heroku.com)
IMPORTANT: This is for rails 3. If you want hassle for rails 2, then you should use "the original one":http://github.com/pedro/hassle
h2. Install
Get it from "Gemcutter.":http://gemcutter.org
gem install hassle -s http://gemcutter.org
h2. Usage
By default, SASS compiles CSS into the @public/@ directory. On platforms like Heroku, "this won't work.":http://docs.heroku.com/constraints#read-only-filesystem 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:
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:
h2. Integration
Here's how to integrate it with your favorite web framework:
h3. Rails
For Rails: @script/plugin install git://github.com/Papipo/hassle@. Done. Once you're in production mode, Hassle will kick in and prepare your SASS for all to enjoy.
h3. Sinatra
Here's a sample config.ru that's "up and running.":http://hassle-sinatra.heroku.com
require 'sinatra'
require 'hassle'
require 'haml'
get '/' do
haml < '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
h2. Bugs
Found some problems? Post 'em in "Issues":http://github.com/pedro/hassle/issues.
h2. License
Hassle uses the MIT license. Please check the LICENSE file for more details.