class PiiSafeSchema::PiiColumn
Attributes
column[R]
suggestion[R]
table[R]
Public Class Methods
all()
click to toggle source
# File lib/pii_safe_schema/pii_column.rb, line 13 def all find_and_create end
from_column_name(table:, column:, suggestion:)
click to toggle source
# File lib/pii_safe_schema/pii_column.rb, line 17 def from_column_name(table:, column:, suggestion:) activerecord_column = connection.columns(table.to_s).find { |c| c.name == column.to_s } unless activerecord_column raise InvalidColumnError, "column \"#{column}\" does not exist for table \"#{table}\"" end new(table: table, column: activerecord_column, suggestion: suggestion) end
new(table:, column:, suggestion:)
click to toggle source
# File lib/pii_safe_schema/pii_column.rb, line 6 def initialize(table:, column:, suggestion:) @table = table.to_sym @column = column @suggestion = suggestion end
Private Class Methods
connection()
click to toggle source
# File lib/pii_safe_schema/pii_column.rb, line 40 def connection ActiveRecord::Base.connection end
find_and_create()
click to toggle source
# File lib/pii_safe_schema/pii_column.rb, line 29 def find_and_create relevant_tables.map do |table| connection.columns(table).map do |column| next if ignored_column?(table, column) rec = recommended_comment(column) rec ? new(table: table, column: column, suggestion: rec) : nil end.compact end.compact.flatten end
ignored_column?(table, column)
click to toggle source
# File lib/pii_safe_schema/pii_column.rb, line 48 def ignored_column?(table, column) PiiSafeSchema.configuration. ignore_columns[table.to_sym]&. include?(column.name.to_sym) end
relevant_tables()
click to toggle source
# File lib/pii_safe_schema/pii_column.rb, line 44 def relevant_tables connection.tables - PiiSafeSchema.configuration.ignore_tables end