From c129a8eec5b0762d75372bc6c07704d49453fed1 Mon Sep 17 00:00:00 2001 From: Tom Hughes Date: Fri, 2 Dec 2016 09:42:05 +0000 Subject: [PATCH] Simplify monkey patch 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 | 20 ++++++-------------- 1 file changed, 6 insertions(+), 14 deletions(-) diff --git a/config/initializers/abstract_adapter.rb b/config/initializers/abstract_adapter.rb index 89d384567..6bb5d10c0 100644 --- a/config/initializers/abstract_adapter.rb +++ b/config/initializers/abstract_adapter.rb @@ -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 -- 2.43.2