class LogStash::Filters::Merge

Public Instance Methods

filter(event) click to toggle source
# File lib/logstash/filters/merge.rb, line 48
def filter(event)
  value = event.get(@field)

  if @target.nil?
    hash_merge(event.to_hash, value)
  else
    event.set(@target, hash_merge(event.get(@target), value))
  end

  filter_matched(event)
end
register() click to toggle source
# File lib/logstash/filters/merge.rb, line 44
def register
end

Private Instance Methods

hash_merge(target, source) click to toggle source
# File lib/logstash/filters/merge.rb, line 22
def hash_merge(target, source)
  if source.is_a? Hash
    if not target.is_a? Hash and @overwrite
      target = {}
    end

    source.each do |source_key, source_value|
      next if @whitelist.length > 0 and not @whitelist.include? source_key
      next if target.include? source_key and not @overwrite

      target[source_key] = source_value
    end
  else
    if target.nil? or @overwrite
      target = source
    end
  end

  return target
end