class Logasm::Preprocessors::Blacklist

Constants

DEFAULT_ACTION
MASKED_VALUE
MASK_SYMBOL

Public Class Methods

new(config = {}) click to toggle source
# File lib/logasm/preprocessors/blacklist.rb, line 12
def initialize(config = {})
  @fields_to_process = config[:fields].inject({}) do |mem, field|
    key = field.delete(:key)
    options = {action: DEFAULT_ACTION}.merge(field)
    validate_action_supported(options[:action])
    mem.merge(key => options)
  end
end

Public Instance Methods

process(data) click to toggle source
# File lib/logasm/preprocessors/blacklist.rb, line 21
def process(data)
  if data.is_a? Hash
    data.inject({}) do |mem, (key, val)|
      if (field = @fields_to_process[key.to_s])
        self.send(action_method(field[:action]), mem, key, val)
      else
        mem.merge(key => process(val))
      end
    end
  elsif data.is_a? Array
    data.inject([]) do |mem, val|
      mem + [process(val)]
    end
  else
    data
  end
end

Private Instance Methods

action_method(action) click to toggle source
# File lib/logasm/preprocessors/blacklist.rb, line 41
def action_method(action)
  "#{action}_field"
end
exclude_field(data, *)
Alias for: prune_field
mask_field(data, key, val) click to toggle source
# File lib/logasm/preprocessors/blacklist.rb, line 51
def mask_field(data, key, val)
  data.merge(key => MASKED_VALUE)
end
prune_field(data, *) click to toggle source
# File lib/logasm/preprocessors/blacklist.rb, line 55
def prune_field(data, *)
  data
end
Also aliased as: exclude_field
validate_action_supported(action) click to toggle source
# File lib/logasm/preprocessors/blacklist.rb, line 45
def validate_action_supported(action)
  unless self.respond_to?(action_method(action).to_sym, true)
    raise UnsupportedActionException.new("Action: #{action} is not supported")
  end
end