= disguise A simple theme system for your Rails application. == Installation sudo gem install disguise == Setup Disguise comes with a couple of admin controllers to make changing your theme simple. By default they are not protected. In order to prevent unauthorized users from changing your theme you can override the admin controller like this: class Admin::ThemesController < Admin::Disguise::ThemesController before_filter :login_required layout('admin') end class Admin::DomainThemesController < Admin::Disguise::DomainThemesController before_filter :login_required layout('admin') end Also be sure to add a route to the new controller in routes.rb: # admin map.namespace :admin do |a| a.resource :theme a.resources :domain_themes end === Rake tasks Add disguise rake tasks to your rails project. Include the following line at the end of your Rakefile: require 'disguise/tasks' Then run the following to add the required files and database migration: rake disguise:setup rake db:migrate == Usage Generate a new theme for your Rails application using the built in theme generator: ./script/generate theme theme_name Disguise can run in two modes. The first is the default which let's an administrator set the current theme via the built in admin interface. The second looks at the url of the incoming request and matches it to a theme. To enable this second mode create an initializer in /config/initializers/disguise.rb and enter the following contents: Disguise.use_domain_for_themes = false # These options are also available to configure disguise. In most cases the defaults should work fine. Disguise.themes_enabled = true Disguise.theme_path = 'themes' Disguise.theme_full_base_path = File.join(RAILS_ROOT, Disguise.theme_path) == Notes After installing Disguise be sure to generate a theme and set that theme as the default theme. Not setting a theme will result in the application continually resetting the current theme which can cause performance problems. == Copyright Copyright (c) 2009 Tatemae.com. See LICENSE for details.