Module: DbObfuscation::Filtering::Column

Defined in:
lib/db_obfuscation/filtering/column.rb

Class Method Summary collapse

Class Method Details

.columns(table_name) ⇒ Object



15
16
17
# File 'lib/db_obfuscation/filtering/column.rb', line 15

def columns(table_name)
  DbObfuscation::DB.schema(table_name)
end

.columns_type(table_name) ⇒ Object



7
8
9
10
11
12
13
# File 'lib/db_obfuscation/filtering/column.rb', line 7

def columns_type(table_name)
  column_types = {}
  columns(table_name).each do |column_name, column_details|
    column_types[column_name] = column_details[:type]
  end
  column_types
end

.ending_in_id?(column_name) ⇒ Boolean

Returns:

  • (Boolean)


27
28
29
# File 'lib/db_obfuscation/filtering/column.rb', line 27

def ending_in_id?(column_name)
  column_name.match(/id$/) ? true : false
end

.filter(column_name, column_type, expected_types) ⇒ Object



31
32
33
34
35
36
# File 'lib/db_obfuscation/filtering/column.rb', line 31

def filter(column_name, column_type, expected_types)
  return nil if polymorphic?(column_name)
  return nil if ending_in_id?(column_name)
  return nil unless type?(expected_types, column_type)
  return column_name
end

.polymorphic?(column_name) ⇒ Boolean

Returns:

  • (Boolean)


23
24
25
# File 'lib/db_obfuscation/filtering/column.rb', line 23

def polymorphic?(column_name)
  column_name.match(/type$/) ? true : false
end

.type?(expected_column_types, column_type) ⇒ Boolean

Returns:

  • (Boolean)


19
20
21
# File 'lib/db_obfuscation/filtering/column.rb', line 19

def type?(expected_column_types, column_type)
  expected_column_types.include? column_type
end