class Fluent::Plugin::ToFlatJsonParser
Public Instance Methods
parse(text) { |time, record| ... }
click to toggle source
# File lib/fluent/plugin/parser_to_flat_json.rb, line 9 def parse(text) r = @load_proc.call(text) time, record = convert_values(parse_time(r), r) record = record_flatten(record) yield time, record rescue @error_class, EncodingError yield nil, nil end
record_flatten(record, parent = nil)
click to toggle source
# File lib/fluent/plugin/parser_to_flat_json.rb, line 18 def record_flatten(record, parent = nil) flattend_record = {} record.each_with_index do |obj, i| if obj.is_a?(Array) k, v = obj else k, v = i, obj end key = parent ? "#{parent}#{@separator}#{k}" : k key = key.gsub('.', @separator) if v.is_a? Enumerable flattend_record.merge!(record_flatten(v, key)) else flattend_record[key] = v end end flattend_record end