17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
|
# File 'lib/fluent/plugin/formatter_text_to_json.rb', line 17
def format(tag, time, record)
tmp_field = record.values.join("").split(@field_splitter)
tmp_field[1] = @field_splitter + tmp_field[1]
tmp_field[0] = tmp_field[0].split("\\n")
tmp_field[0] = tmp_field[0].map{|value| (value == "")? nil:value}
tmp_field[0] = tmp_field[0].map{|value| (value == nil)? nil:"\""+value+"\""}
tmp_field[0] = @fields[2,14].zip(tmp_field[0])
tmp_field[0] = tmp_field[0].map{|x| x.join(":")}.join(",")
tmp_field[0] = "#{@fields[0]}:{ #{tmp_field[0]}}"
head, *tail = tmp_field[1].split("\\n")
haed = head.split("^|")
head = head.map{|field| "\""+field+"\""}
tail = tail.map{|values| values.split("^|")}
new_tail = Array.new(head.length)
for i in 0..head.length-1
new_tail[i] = "\"" + tail.map{|values| values[i]}.join(",") + "\""
end
tmp_field[1] = "{" + head.zip(new_tail).map{|field,value| field + ":" + value }.join(",") + "}"
"{#{@fields[0]}:{#{tmp_field[0]}},#{@fields[1]}:{#{tmp_field[1]}}}"
end
|