= precssious This is just a hack to allow me to write nested CSS. I had trouble finding a CSS preprocessor that actually allowed nested styles without breaking my stylesheets. Although I am under no illusions of the general applicability of this code (the current implementation is very naïve), it appears to do OK with how I write CSS. See spec/snippets.rb for a quick list of the features it supports. == On performance / configuration It's probably not a good idea to serve stylesheets using precssious under normal conditions. However, caching them in development can be a real drag. I've used the following approach. (1) I add a precssious dependency, and make sure it isn't loaded by default. /config/environment.rb config.gem 'precssious', :lib => false (2) I add an initializer with the following code, to load precssious in development: /config/initializers/precssious.rb if RAILS_ENV == 'development' require 'precssious' Precssious.start_rails_controller end This catches requests to "/stylesheets/xxx/xxx.css", and serves the content of all stylesheets in that directory, merged into a single file. The web path ("stylesheets") and the source directory ("public/stylesheets") can both be configured. (3) For production, I don't want Precssious loaded at all -- instead, I generate the stylesheets on deploy. Require 'tasks/precssious' from within your Rakefile to make the task available, and then add something like the following to /config/deploy.rb /config/deploy.rb after "deploy:update_code" do run "cd #{current_path} && rake precssious:generate" end == Note on Patches/Pull Requests * Fork the project. * Make your feature addition or bug fix. * Add tests for it. This is important so I don't break it in a future version unintentionally. * Commit, do not mess with rakefile, version, or history. (if you want to have your own version, that is fine but bump version in a commit by itself I can ignore when I pull) * Send me a pull request. Bonus points for topic branches. == Copyright Copyright (c) 2009 Erik Hansson. See LICENSE for details.