class DbSubsetter::Scrambler
Clean or redact data to be exported
Public Class Methods
new()
click to toggle source
# File lib/db_subsetter/scrambler.rb, line 15 def initialize @column_index_cache = {} end
Public Instance Methods
scramble(table, row)
click to toggle source
# File lib/db_subsetter/scrambler.rb, line 6 def scramble(table, row) scramble_method = "scramble_#{table.downcase}" if respond_to? scramble_method send(scramble_method, row) else row end end
Protected Instance Methods
scramble_column(table, column, row_data, value)
click to toggle source
# File lib/db_subsetter/scrambler.rb, line 21 def scramble_column(table, column, row_data, value) row_data[column_index(table, column)] = value end
Private Instance Methods
column_index(table, column)
click to toggle source
# File lib/db_subsetter/scrambler.rb, line 27 def column_index(table, column) @column_index_cache["#{table}##{column}"] ||= ActiveRecord::Base.connection.columns(table).map.(&:name).index(column.to_s) end