You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
31 lines
755 B
CoffeeScript
31 lines
755 B
CoffeeScript
moment = require "moment"
|
|
|
|
module.exports = class CDXRecord
|
|
data: {} # For JSON output purposes etc.
|
|
|
|
constructor: (@delimiter, @signature) ->
|
|
|
|
getData: ->
|
|
return @data
|
|
|
|
generateRecord: ->
|
|
|
|
parseRecord: (data) ->
|
|
if not data?
|
|
return
|
|
|
|
fields = data.split(@delimiter)
|
|
|
|
for i, fieldName of @signature
|
|
if fields[i]? and fields[i] != "-"
|
|
switch fieldName
|
|
when "date"
|
|
value = moment fields[i], "YYYYMMDDHHmmss"
|
|
when "compressedDATFileOffset", "compressedARCFileOffset", "uncompressedDATFileOffset", "uncompressedARCFileOffset", "responseCode", "ARCDocumentLength", "port", "compressedRecordSize"
|
|
value = parseInt(fields[i])
|
|
else
|
|
value = fields[i]
|
|
|
|
this[fieldName] = value
|
|
@data[fieldName] = value
|