def parse(text)
record = Yajl.load(text)
if value = record.delete(@time_key)
if @time_format
time = @mutex.synchronize { @time_parser.parse(value) }
else
begin
time = value.to_i
rescue => e
raise ParserError, "invalid time value: value = #{value}, error_class = #{e.class.name}, error = #{e.message}"
end
end
else
if @estimate_current_event
time = Engine.now
else
time = nil
end
end
if block_given?
yield time, record
else
return time, record
end
rescue Yajl::ParseError
if block_given?
yield nil, nil
else
return nil, nil
end
end