Use Timeout if SystemTimer isn't loaded
authorTom Hughes <tom@compton.nu>
Fri, 6 Jan 2012 09:11:23 +0000 (09:11 +0000)
committerTom Hughes <tom@compton.nu>
Fri, 6 Jan 2012 09:11:23 +0000 (09:11 +0000)
app/controllers/application_controller.rb
lib/osm.rb

index 96bf915..e64e2e0 100644 (file)
@@ -286,7 +286,7 @@ class ApplicationController < ActionController::Base
   ##
   # wrap an api call in a timeout
   def api_call_timeout
-    SystemTimer.timeout_after(API_TIMEOUT) do
+    OSM::Timer.timeout(API_TIMEOUT) do
       yield
     end
   rescue Timeout::Error
@@ -296,7 +296,7 @@ class ApplicationController < ActionController::Base
   ##
   # wrap a web page in a timeout
   def web_timeout
-    SystemTimer.timeout_after(WEB_TIMEOUT) do
+    OSM::Timer.timeout(WEB_TIMEOUT) do
       yield
     end
   rescue ActionView::TemplateError => ex
index 02c51df..a85a7df 100644 (file)
@@ -9,6 +9,13 @@ module OSM
   require 'RMagick'
   require 'nokogiri'
 
+  if defined?(SystemTimer)
+    Timer = SystemTimer
+  else
+    require 'timeout'
+    Timer = Timeout
+  end
+
   # The base class for API Errors.
   class APIError < RuntimeError
     def status