misc fixes to get working in production mode using Thin.
authorelijah <elijah@riseup.net>
Wed, 13 Feb 2013 07:46:35 +0000 (23:46 -0800)
committerelijah <elijah@riseup.net>
Wed, 13 Feb 2013 07:46:35 +0000 (23:46 -0800)
Gemfile
Gemfile.lock
app/controllers/application_controller.rb
app/helpers/navigation_helper.rb
config/environments/production.rb
lib/menu.rb

diff --git a/Gemfile b/Gemfile
index 9ed38ca..7748246 100644 (file)
--- a/Gemfile
+++ b/Gemfile
@@ -1,52 +1,24 @@
 source 'https://rubygems.org'
 
 gem 'rails', '3.2.12'
-
-# Bundle edge Rails instead:
-# gem 'rails', :git => 'git://github.com/rails/rails.git'
-
 gem 'sqlite3'
-
 gem 'json'
 
+gem 'markdown-rails'  # allows static pages with .md
+gem 'haml'            # allow pages with .haml
+gem 'RedCloth'        # allow :textile in HAML
+gem 'sass-rails'      # not sure why can't be in :assets group
+
 # Gems used only for assets and not required
 # in production environments by default.
 group :assets do
-  gem 'sass-rails'  #,   '~> 3.2.3'
-  gem 'haml'
-  gem 'RedCloth'
-
-  # see https://github.com/iain/http_accept_language
-  #gem 'http_accept_language'
-  #gem 'http_accept_language', '>= 2.0.0.pre'
-
   gem 'uglifier', '>= 1.0.3'
-  gem 'execjs'
-  # See https://github.com/sstephenson/execjs#readme for more supported runtimes
+  gem 'execjs'  # See https://github.com/sstephenson/execjs#readme for supported runtimes
   gem 'therubyrhino'
 end
 
 gem 'jquery-rails'
-
-# To use ActiveModel has_secure_password
-# gem 'bcrypt-ruby', '~> 3.0.0'
-
-# To use Jbuilder templates for JSON
-# gem 'jbuilder'
-
-# Use unicorn as the web server
-# gem 'unicorn'
-
-# Deploy with Capistrano
-gem 'capistrano'
-
-# To use debugger
-# gem 'ruby-debug'
-
-# allows static pages with .md
-gem 'markdown-rails'
-
-gem 'sass'
+gem 'capistrano'     # deploy with Capistrano
 
 group :development do
   gem 'thin'
index 0f987e9..cfda894 100644 (file)
@@ -134,7 +134,6 @@ DEPENDENCIES
   json
   markdown-rails
   rails (= 3.2.12)
-  sass
   sass-rails
   sqlite3
   therubyrhino
index b2c5762..b73a463 100644 (file)
@@ -22,18 +22,20 @@ class ApplicationController < ActionController::Base
   # ensure that the locale is encoded as the url prefix and I18n.locale is set.
   #
   def set_locale
-    if params[:locale].nil?  || !AVAILABLE_LANGUAGES.include?(params[:locale])
-      locale = HttpAcceptLanguage::compatible_language_from(request.headers['HTTP_ACCEPT_LANGUAGE'], AVAILABLE_LANGUAGES) || DEFAULT_LOCALE
-      locale = locale.to_s.sub('-', '_').sub(/_\w\w/, '')
-      if request.path == '/'
-        url = '/' + locale
+    if request.format == 'text/html'
+      if params[:locale].nil?  || !AVAILABLE_LANGUAGES.include?(params[:locale])
+        locale = HttpAcceptLanguage::compatible_language_from(request.headers['HTTP_ACCEPT_LANGUAGE'], AVAILABLE_LANGUAGES) || DEFAULT_LOCALE
+        locale = locale.to_s.sub('-', '_').sub(/_\w\w/, '')
+        if request.path == '/'
+          url = '/' + locale
+        else
+          url = url_for(params.merge(:locale => locale))
+        end
+        redirect_to url
       else
-        url = url_for(params.merge(:locale => locale))
+        I18n.locale = params[:locale]
+        self.default_url_options[:locale] = params[:locale]
       end
-      redirect_to url
-    else
-      I18n.locale = params[:locale]
-      self.default_url_options[:locale] = params[:locale]
     end
   end
 
index a43eecd..fde6b45 100644 (file)
@@ -1,7 +1,7 @@
 module NavigationHelper
 
   def has_side_column?
-    if root_page?
+    if root_page? || site.menu.nil?
       return false
     end
     second_level_children_count = site.menu.submenu(current_page_path.first).try(:size)
@@ -13,6 +13,7 @@ module NavigationHelper
   end
 
   def top_level_navigation_links
+    return unless site.menu
     haml do
       first = 'first'
       site.menu.each do |item|
index 49c5009..815463c 100644 (file)
@@ -10,7 +10,7 @@ LeapPublicSite::Application.configure do
 
   # Make rails server static assets if we are running Mongrel or WEBrick,
   # otherwise, let apache do it.
-  config.serve_static_assets = config.serve_static_assets = ( defined?(Mongrel) || defined?(WEBrick) ) ? true : false
+  config.serve_static_assets = (defined?(Mongrel) || defined?(WEBrick) || defined?(Thin)) ? true : false
 
   # Compress JavaScripts and CSS
   config.assets.compress = true
index c156e07..4da8441 100644 (file)
@@ -31,7 +31,7 @@ class Menu
   #
   def submenu(item_name=nil)
     if item_name
-      self.children.detect {|child| child.name == item_name} || Menu.new
+      self.children.detect {|child| child.name == item_name}
     else
       self.children
     end