Skip to content
This repository

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP

HTTP Caching SASS for your leisure (?) This fork will work with rails 3

branch: master

Fetching latest commit…

Octocat-spinner-32-eaf2f5

Cannot retrieve the latest commit at this time

Octocat-spinner-32 features
Octocat-spinner-32 lib
Octocat-spinner-32 spec
Octocat-spinner-32 .gitignore
Octocat-spinner-32 LICENSE
Octocat-spinner-32 README.textile
Octocat-spinner-32 Rakefile
Octocat-spinner-32 TODO
Octocat-spinner-32 VERSION
Octocat-spinner-32 hassle.gemspec
Octocat-spinner-32 init.rb
README.textile

Hassle

Making SASS less of a hassle on read only filesystems. (like Heroku)

IMPORTANT: This is for rails 3. If you want hassle for rails 2, then you should use the original one

Install

Get it from Gemcutter.

gem install hassle -s http://gemcutter.org

Usage

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" />

Integration

Here’s how to integrate it with your favorite web framework:

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.

Sinatra

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

Bugs

Found some problems? Post ’em in Issues.

License

Hassle uses the MIT license. Please check the LICENSE file for more details.

Something went wrong with that request. Please try again.