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.
This commit is contained in:
parent
ec6e096274
commit
c129a8eec5
1 changed files with 6 additions and 14 deletions
|
@ -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
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue