Simplify monkey patch
authorTom Hughes <tom@compton.nu>
Fri, 2 Dec 2016 09:42:05 +0000 (09:42 +0000)
committerTom Hughes <tom@compton.nu>
Fri, 2 Dec 2016 09:42:05 +0000 (09:42 +0000)
The log method has grown new arguments which we weren't passing
on, but fortunately the exception translation is now delegated to
another method so we can patch that instead.

config/initializers/abstract_adapter.rb

index 89d38456745e8fa9492bc9a0800356f432cc7633..6bb5d10c01bcafcecf142d36fc1c8ce27543d5bd 100644 (file)
@@ -6,23 +6,15 @@ if defined?(ActiveRecord::ConnectionAdaptors::AbstractAdapter)
 
         alias old_log log
 
-        def log(sql, name)
-          if block_given?
-            old_log(sql, name) do
-              yield
-            end
+        def translate_exception_class_with_timeout(e, sql)
+          if e.is_a?(Timeout::Error) || e.is_a?(OSM::APITimeoutError)
+            e
           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
+            translate_exception_class_without_timeout(e, sql)
           end
         end
+
+        alias_method_chain :translate_exception_class, :timeout
       end
     end
   end