-module ActiveRecord
- module ConnectionAdapters
- class AbstractAdapter
- protected
- alias_method :old_log, :log
+if defined?(ActiveRecord::ConnectionAdaptors::AbstractAdapter)
+ module ActiveRecord
+ module ConnectionAdapters
+ class AbstractAdapter
+ protected
- def log(sql, name)
- if block_given?
- old_log(sql, name) do
- yield
+ 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.new
- else
- raise
end
end
end