merge blog features that got deleted when repo was renamed.
[leap_website.git] / app / controllers / application_controller.rb
index 62a4e13..da6cf3e 100644 (file)
@@ -3,7 +3,7 @@ class ApplicationController < ActionController::Base
   protect_from_forgery
   before_filter :set_locale, :initialize_pages
 
-  if Rails.env == 'production'
+  if Rails.env.production?
     rescue_from Exception, :with => :render_500
     rescue_from ActionController::RoutingError, :with => :render_404
   end
@@ -64,6 +64,22 @@ class ApplicationController < ActionController::Base
     end
   end
 
+  #
+  # same as render page, but returns the string
+  #
+  def page_body(page)
+    begin
+      render_to_string :template => page.template_path
+    rescue ActionView::MissingTemplate => exc
+      begin
+        render_to_string :template => page.template_path(DEFAULT_LOCALE)
+      rescue
+        raise exc
+      end
+    end
+  end
+  helper_method :page_body
+
   ##
   ## INITIALIZATION
   ##
@@ -72,17 +88,18 @@ class ApplicationController < ActionController::Base
   # run every time in development mode, run once in production mode
   #
   def initialize_pages
-    run_once(:unless => Rails.env.development?) do
+    run_once(:initialize_pages, :unless => Rails.env.development?) do
       StaticPage.load(PAGE_DIRECTORY)
       Menu.load(PAGE_DIRECTORY + '/menu.txt')
     end
   end
 
-  def run_once(options={})
-    if !@run_once || !options[:unless]
+  def run_once(name, options={})
+    key_name = "run_once_#{name}"
+    if !Thread.current[key_name] || options[:unless]
       yield
     end
-    @run_once = true
+    Thread.current[key_name] = true
   end
 
 end