From 916e7f09c56ff0ab6722c4cce5e78d71ec336d48 Mon Sep 17 00:00:00 2001 From: Eric Wong Date: Fri, 14 Jan 2011 16:20:40 -0800 Subject: handle abitrarily long time formats in C extension In case some folks need to use insanely long time formats, we'll support them. --- lib/clogger.rb | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) (limited to 'lib/clogger.rb') diff --git a/lib/clogger.rb b/lib/clogger.rb index a64ca09..75a639c 100644 --- a/lib/clogger.rb +++ b/lib/clogger.rb @@ -57,6 +57,7 @@ private \w*))?([^$]*)/x def compile_format(str, opt = {}) + longest_day = Time.at(26265600) # "Saturday, November 01, 1970 00:00:00" rv = [] opt ||= {} str.scan(SCAN).each do |pre,tok,post| @@ -83,9 +84,11 @@ private when /\A\$sent_http_(\w+)\z/ rv << [ OP_RESPONSE, $1.downcase.tr('_','-') ] when /\A\$time_local\{([^\}]+)\}\z/ - rv << [ OP_TIME_LOCAL, $1 ] + fmt = $1 + rv << [ OP_TIME_LOCAL, fmt, longest_day.strftime(fmt) ] when /\A\$time_utc\{([^\}]+)\}\z/ - rv << [ OP_TIME_UTC, $1 ] + fmt = $1 + rv << [ OP_TIME_UTC, fmt, longest_day.strftime(fmt) ] when /\A\$time\{(\d+)\}\z/ rv << [ OP_TIME, *usec_conv_pair(tok, $1.to_i) ] when /\A\$request_time\{(\d+)\}\z/ -- cgit v1.2.3-24-ge0c7