diff options
Diffstat (limited to 'app/controllers/application_controller.rb')
-rw-r--r-- | app/controllers/application_controller.rb | 34 |
1 files changed, 22 insertions, 12 deletions
diff --git a/app/controllers/application_controller.rb b/app/controllers/application_controller.rb index da6cf3e..b2c5762 100644 --- a/app/controllers/application_controller.rb +++ b/app/controllers/application_controller.rb @@ -3,6 +3,10 @@ class ApplicationController < ActionController::Base protect_from_forgery before_filter :set_locale, :initialize_pages + class << self + attr_accessor :current_site # a class instance variable + end + if Rails.env.production? rescue_from Exception, :with => :render_500 rescue_from ActionController::RoutingError, :with => :render_404 @@ -81,25 +85,31 @@ class ApplicationController < ActionController::Base helper_method :page_body ## - ## INITIALIZATION + ## SITE ## # - # run every time in development mode, run once in production mode + # if we ever make this code support multiple sites, this should depend on the request's domain # - def initialize_pages - run_once(:initialize_pages, :unless => Rails.env.development?) do - StaticPage.load(PAGE_DIRECTORY) - Menu.load(PAGE_DIRECTORY + '/menu.txt') - end + def site + self.class.current_site ||= Site.new end + helper_method :site - def run_once(name, options={}) - key_name = "run_once_#{name}" - if !Thread.current[key_name] || options[:unless] - yield + def initialize_pages + if Rails.env.development? + site.load_pages + else + site.reload_pages_if_needed end - Thread.current[key_name] = true end + #def run_once(name, options={}) + # key_name = "run_once_#{name}" + # if !Thread.current[key_name] || options[:unless] + # yield + # end + # Thread.current[key_name] = true + #end + end |