class RecordExploder
Public Class Methods
new(values_retriever)
click to toggle source
# File lib/fluent/plugin/record_exploder.rb, line 5 def initialize(values_retriever) @values_retriever = values_retriever end
Public Instance Methods
explode_record(keys, record)
click to toggle source
# File lib/fluent/plugin/record_exploder.rb, line 9 def explode_record(keys, record) values = @values_retriever.retrieve_values(keys, record) key_to_explode = keys.last upper_keys = keys.reverse.drop(1).reverse new_records = values.map do |value| record_copy = Marshal.load(Marshal.dump(record)) upper_record = record_copy upper_keys.each do |key| upper_record = upper_record[key] end upper_record[key_to_explode] = value record_copy end return new_records end