Sha256: f9a84ce265826ed5264ecec675e86841951bb3e54ac0e1b0e1d6af58caed3e67
Contents?: true
Size: 760 Bytes
Versions: 6
Compression:
Stored size: 760 Bytes
Contents
module Simple module SQL module Logging extend self def yield_logged(sql, *args, &block) r0 = Time.now rv = yield realtime = Time.now - r0 ::Simple::SQL.logger.debug "[sql] %.3f secs: %s" % [ realtime, format_query(sql, *args) ] rv rescue => e realtime = Time.now - r0 ::Simple::SQL.logger.warn "[sql] %.3f secs: %s:\n\tfailed with error %s" % [ realtime, format_query(sql, *args), e.message ] raise end private def format_query(sql, *args) sql = sql.gsub(/\s*\n\s*/, " ").gsub(/(\A\s+)|(\s+\z)/, "") return sql if args.empty? args = args.map(&:inspect).join(", ") sql + " w/args: #{args}" end end end end
Version data entries
6 entries across 6 versions & 1 rubygems