class PiiSafeSchema::Configuration

Constants

DEFAULT_IGNORE
KNOWN_DD_CLIENTS

Public Class Methods

new() click to toggle source
# File lib/pii_safe_schema/configuration.rb, line 10
def initialize
  @user_ignore = {}
end

Public Instance Methods

datadog_client() click to toggle source
# File lib/pii_safe_schema/configuration.rb, line 29
def datadog_client
  @datadog_client ||=
    KNOWN_DD_CLIENTS.find do |client|
      client.safe_constantize if defined?(client)
    end
end
datadog_client=(client) click to toggle source
# File lib/pii_safe_schema/configuration.rb, line 23
def datadog_client=(client)
  raise_config_error(:datadog_client) if client.present? && !client.respond_to?(:event)

  @datadog_client = client
end
ignore() click to toggle source
# File lib/pii_safe_schema/configuration.rb, line 19
def ignore
  @user_ignore.merge(DEFAULT_IGNORE)
end
ignore=(ignore_params) click to toggle source
# File lib/pii_safe_schema/configuration.rb, line 14
def ignore=(ignore_params)
  validate_ignore(ignore_params)
  @user_ignore = ignore_params
end
ignore_columns() click to toggle source
# File lib/pii_safe_schema/configuration.rb, line 40
def ignore_columns
  ignore.select { |_k, v| v.is_a?(Array) }
end
ignore_tables() click to toggle source
# File lib/pii_safe_schema/configuration.rb, line 36
def ignore_tables
  ignore.select { |_k, v| v.to_s == '*' }.keys.map(&:to_s)
end

Private Instance Methods

raise_config_error(problem) click to toggle source
# File lib/pii_safe_schema/configuration.rb, line 59
def raise_config_error(problem)
  raise ConfigurationError, problem
end
valid_column_list?(value) click to toggle source
# File lib/pii_safe_schema/configuration.rb, line 55
def valid_column_list?(value)
  value.is_a?(Array) && value.all? { |c| c.is_a?(Symbol) }
end
validate_ignore(ignore_params) click to toggle source
# File lib/pii_safe_schema/configuration.rb, line 46
def validate_ignore(ignore_params)
  raise_config_error(:ignore) unless ignore_params.is_a?(Hash)

  ignore_params.each_value do |ip|
    raise_config_error(:ignore) unless valid_column_list?(ip) || ip == :*
  end
  true
end