]> git.openstreetmap.org Git - rails.git/blobdiff - config/environment.rb
Try and make asset tagging actually work.
[rails.git] / config / environment.rb
index 711d2ff8d1975001acbcc82e3e5e92677ca3152f..2bc029767b0e0043017e1a00e3e5577df212477a 100644 (file)
@@ -1,5 +1,8 @@
 # Be sure to restart your web server when you modify this file.
 
 # Be sure to restart your web server when you modify this file.
 
+# Limit each rails process to a 512Mb resident set size
+Process.setrlimit Process::RLIMIT_AS, 640*1024*1024, Process::RLIM_INFINITY
+
 # Uncomment below to force Rails into production mode when 
 # you don't control web/app server and can't set it the proper way
 ENV['RAILS_ENV'] ||= 'production'
 # Uncomment below to force Rails into production mode when 
 # you don't control web/app server and can't set it the proper way
 ENV['RAILS_ENV'] ||= 'production'
@@ -9,9 +12,16 @@ RAILS_GEM_VERSION = '1.2.3'
 
 # Bootstrap the Rails environment, frameworks, and default configuration
 require File.join(File.dirname(__FILE__), 'boot')
 
 # Bootstrap the Rails environment, frameworks, and default configuration
 require File.join(File.dirname(__FILE__), 'boot')
-\r
-# Application constants needed for routes.rb - must go before Initializer call\r
-API_VERSION = ENV['OSM_API_VERSION'] || '0.4'\r
+
+# Application constants needed for routes.rb - must go before Initializer call
+API_VERSION = ENV['OSM_API_VERSION'] || '0.5'
+
+# Custom logger class to format messages sensibly
+class OSMLogger < Logger
+  def format_message(severity, time, progname, msg)
+    "[%s.%06d #%d] %s\n" % [time.strftime("%Y-%m-%d %H:%M:%S"), time.usec, $$, msg.sub(/^\n+/, "")]
+  end
+end
 
 Rails::Initializer.run do |config|
   # Settings in config/environments/* take precedence those specified here
 
 Rails::Initializer.run do |config|
   # Settings in config/environments/* take precedence those specified here
@@ -26,14 +36,25 @@ Rails::Initializer.run do |config|
   # (by default production uses :info, the others :debug)
   # config.log_level = :debug
 
   # (by default production uses :info, the others :debug)
   # config.log_level = :debug
 
+  # Use our custom logger
+  config.logger = OSMLogger.new(config.log_path)
+  config.logger.level = Logger.const_get(config.log_level.to_s.upcase)
+
   # Use the database for sessions instead of the file system
   # (create the session table with 'rake db:sessions:create')
   # Use the database for sessions instead of the file system
   # (create the session table with 'rake db:sessions:create')
-  # config.action_controller.session_store = :active_record_store
+  # config.action_controller.session_store = :sql_session_store
+
+  # Unfortunately SqlSessionStore is a plugin which has not been
+  # loaded yet, so we have to do things the hard way...
+  config.after_initialize do
+    ActionController::Base.session_store = :sql_session_store
+    SqlSessionStore.session_class = MysqlSession
+  end
 
   # Use SQL instead of Active Record's schema dumper when creating the test database.
   # This is necessary if your schema can't be completely dumped by the schema dumper, 
   # like if you have constraints or database-specific column types
 
   # Use SQL instead of Active Record's schema dumper when creating the test database.
   # This is necessary if your schema can't be completely dumped by the schema dumper, 
   # like if you have constraints or database-specific column types
-  config.active_record.schema_format = :sql
+  config.active_record.schema_format = :sql
 
   # Activate observers that should always be running
   # config.active_record.observers = :cacher, :garbage_collector
 
   # Activate observers that should always be running
   # config.active_record.observers = :cacher, :garbage_collector
@@ -53,26 +74,42 @@ end
 #   inflect.uncountable %w( fish sheep )
 # end
 
 #   inflect.uncountable %w( fish sheep )
 # end
 
+# Hack the AssetTagHelper to make asset tagging work better
+module ActionView
+  module Helpers
+    module AssetTagHelper
+      private
+        alias :old_compute_public_path :compute_public_path
+
+        def compute_public_path(source, dir, ext)
+          path = old_compute_public_path(source, dir, ext)
+          if path =~ /(.+)\?(\d+)\??$/
+            path = "#{$1}/#{$2}"
+          end
+          path
+        end
+    end
+  end
+end
+
+# Set to :readonly to put the API in read-only mode or :offline to
+# take it completely offline
+API_STATUS = :online
+
 # Include your application configuration below
 SERVER_URL = ENV['OSM_SERVER_URL'] || 'www.openstreetmap.org'
 
 # Include your application configuration below
 SERVER_URL = ENV['OSM_SERVER_URL'] || 'www.openstreetmap.org'
 
-ActionMailer::Base.server_settings = {
+ActionMailer::Base.smtp_settings = {
   :address  => "localhost",
   :port  => 25, 
   :domain  => 'localhost',
 } 
 
   :address  => "localhost",
   :port  => 25, 
   :domain  => 'localhost',
 } 
 
+#Taming FCGI
+#
+COUNT = 0
+MAX_COUNT = 10000
 
 
-# HTTP CODES
-
-# 200's
-
-HTTP_OK = 200
-
-# 400's
-
-HTTP_PRECONDITION_FAILED = 412
-HTTP_EXPECTATION_FAILED = 417