module PiiSafeSchema

Constants

VERSION

Public Class Methods

activate!() click to toggle source
# File lib/pii_safe_schema.rb, line 30
def self.activate!
  return if Rails.env.test?

  ActiveSupport.on_load :active_record do
    Notify.notify(PiiSafeSchema::PiiColumn.all)
  end
rescue ActiveRecord::NoDatabaseError
  Rails.logger.info('PiiSafeSchema: No DB'.red)
end
configuration() click to toggle source
# File lib/pii_safe_schema.rb, line 18
def self.configuration
  @configuration ||= Configuration.new
end
configure() { |configuration| ... } click to toggle source
# File lib/pii_safe_schema.rb, line 26
def self.configure
  yield(configuration)
end
generate_migrations(additional_pii_columns = []) click to toggle source
# File lib/pii_safe_schema.rb, line 40
def self.generate_migrations(additional_pii_columns = [])
  PiiSafeSchema::MigrationGenerator.generate_migrations(
    PiiSafeSchema::PiiColumn.all + additional_pii_columns,
  )
end
parse_additional_columns(arguments) click to toggle source
# File lib/pii_safe_schema.rb, line 46
def self.parse_additional_columns(arguments)
  arguments.map do |str|
    matches = /([a-z_]+):([a-z_]+):([a-z_]+)/i.match(str)
    return print_help! if matches.blank?

    suggestion = Annotations.comment(matches[3])
    return print_help! if suggestion.blank?

    PiiColumn.from_column_name(table: matches[1], column: matches[2], suggestion: suggestion)
  end
end
print_help!(do_exit: true) click to toggle source
reset_configuration!() click to toggle source
# File lib/pii_safe_schema.rb, line 22
def self.reset_configuration!
  @configuration = Configuration.new
end