I did something similar a couple months ago.  Instead of taking the 
route you did, I made a custom template handler and registered it.

http://pastie.caboo.se/77659

You'll probably want to page-cache the result if at all possible.  Sass 
isn't optimized for speed.

Sean

Eeby wrote:
> I am trying to work out a good way to have dynamic CSS. I like Sass,
> so I tried to work that in too. I'm looking for comments for
> improvement to what I came up with.
>
> Any constructive criticism would be appreciated.
>
> Thanks,
>
> E
> aeondust.com
>
> ------------------------------------
>
> First put Sass code into an Erb file:
>
> public/stylesheets/styles_sass.erb
>
> Your Sass code can be interspersed with variables, e.g.,
>
> h1, h2, h3, h4, h5, h6
>   margin: 6px 0
>   padding: 0
>   color: <%= header_color %>
>
> Or anything else you can put in an Erb or RHMTL file.
>
> Then create a controller to serve the CSS data:
>
> require 'erb'
>
> class CssController < ApplicationController
>
>   layout nil
>   session :off
>
>   def index
>
>     # Get the path to the Erb file.
>     sass_erb_file =
> File.join(File.expand_path(File.dirname(__FILE__)),
>       '..',
>       '..',
>       'public',
>       'stylesheets',
>       'styles_sass.erb')
>
>     # Read in the Erb file
>     sass_code = open(sass_erb_file) { |f| f.read }
>
>     # Erb tempate object
>     erb_template = ERB.new sass_code
>
>     # Set some vars. Here you would probably do something more useful
>     # like get data from the DB
>     header_color = '#BE0D45'
>     navbar_bgcolor = '#F2D0A5'
>     left_col_bgcolor = '#ccc'
>     right_col_bgcolor = '#ccc'
>
>     # Get the output of the template
>     sass_processed = erb_template.result(binding)
>
>     # Put the resulting Sass code through the Sass engine to produce
> CSS
>     engine = Sass::Engine.new(sass_processed)
>     css = engine.render
>
>     # Return the CSS
>     render :text => css, :content_type => "text/css"
>
>   end
> end
>
> In your views, link to the CSS data like this:
>
> <link href='/css' rel='Stylesheet' type='text/css' />
>
>
> >
>
>   


--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Haml" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at http://groups.google.com/group/haml?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to