openstreetmap-website/config/initializers/abstract_adapter.rb
2010-07-19 12:36:30 +01:00

28 lines
717 B
Ruby

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
end
end
end
end
end