]> git.openstreetmap.org Git - rails.git/blobdiff - config/initializers/abstract_adapter.rb
When asked to edit an object centre on the correct location
[rails.git] / config / initializers / abstract_adapter.rb
index 7b22a3cc6ccbd95cf5deda3203de5bbb87985d05..f9b711f6ce0f6387efea1dfc8e5e923b21a3aaf6 100644 (file)
@@ -1,22 +1,26 @@
-module ActiveRecord
-  module ConnectionAdapters
-    class AbstractAdapter
-    protected
-      alias_method :old_log, :log
-
-      def log(sql, name)
-        if block_given?
-          old_log(sql, name) do
-            yield
+if defined?(ActiveRecord::ConnectionAdaptors::AbstractAdapter)
+  module ActiveRecord
+    module ConnectionAdapters
+      class AbstractAdapter
+      protected
+        alias_method :old_log, :log
+  
+        def log(sql, name)
+          if block_given?
+            old_log(sql, name) do
+              yield
+            end
+          else
+            old_log(sql, name)
+          end
+        rescue ActiveRecord::StatementInvalid => ex
+          if ex.message =~ /^OSM::APITimeoutError: /
+            raise OSM::APITimeoutError.new
+          elsif ex.message =~ /^Timeout::Error: /
+            raise Timeout::Error.new("time's up!")
+          else
+            raise
           end
-        else
-          old_log(sql, name)
-        end
-      rescue ActiveRecord::StatementInvalid => ex
-        if ex =~ /^OSM::APITimeoutError: /
-          raise OSM::APITimeoutError
-        else
-          raise
         end
       end
     end