@Brandon
WOW you gave me a crazy idea, which works, but before I get to A
solution...
What you suggested is exactly what I am doing. I have each of the
themes in its own sass partial with a theme filename, like
_blues.sass, _greens.sass, _summer.sass. Inside each of those files I
define the colors and fonts for the themes:
!bg_color = #C0C0C0
!font_base = 'Arial'
etc
Inside of my base.sass I then do @import blues.sass and throughout ALL
my SASS files I reference the variables set. It's a very effective
and efficient themeing system.
POTENTIAL SOLUTION -
I then realized as I was typing this reply a potential solution, which
WORKED!! (no database but themeing)
I created a new file:
app > stylesheets > chrome.sass
I moved all my previous application.sass stuff to a partial called:
app > stylesheets > partials > _application.sass and inside of that I
import my _base.sass partial.
now. inside of chrome.sass I just defined all my colors like I am
doing in the themes file and at the end do an @import partials/
application.sass !!!
That's it!!! I do that for each of my theme files and Compass creates
compiled themes. Inside of my layout I can then pull from the user
model the selected theme and include that stylesheet.
Granted its a lot of compiling for compass to do but I am assuming
that compass only compiles ONCE when there are changes, correct?
Anyway, it works and has near (one line) zero redundancy. If someone
has a different approach let me know.
/j