class Reencryptor::GlobalToPerAttributeIVSalt::Migrator
Attributes
classes[RW]
Public Class Methods
new(classes_hash: nil)
click to toggle source
# File lib/reencryptor/global_to_per_attribute_iv_salt/migrator.rb, line 7 def initialize (classes_hash: nil) self.classes = classes_hash end
Public Instance Methods
fieldname(field)
click to toggle source
# File lib/reencryptor/global_to_per_attribute_iv_salt/migrator.rb, line 27 def fieldname(field) "encrypted_#{field.to_s.downcase}".to_sym end
fieldname_iv(field)
click to toggle source
# File lib/reencryptor/global_to_per_attribute_iv_salt/migrator.rb, line 35 def fieldname_iv(field) "encrypted_#{field.to_s.downcase}_iv".to_sym end
fieldname_old(field)
click to toggle source
# File lib/reencryptor/global_to_per_attribute_iv_salt/migrator.rb, line 31 def fieldname_old(field) "encrypted_#{field.to_s.downcase}_old".to_sym end
fieldname_salt(field)
click to toggle source
# File lib/reencryptor/global_to_per_attribute_iv_salt/migrator.rb, line 39 def fieldname_salt(field) "encrypted_#{field.to_s.downcase}_salt".to_sym end
generate()
click to toggle source
# File lib/reencryptor/global_to_per_attribute_iv_salt/migrator.rb, line 11 def generate puts "Add the following lines to a new migration:" self.classes.each do |klass, fields| klass_name = klass.to_s.underscore.pluralize.to_sym fields.each do |f| field = f.to_s.underscore.to_sym field_old = fieldname_old(field) puts "rename_column :#{klass_name}, :#{fieldname(field)}, :#{field_old}" puts "add_column :#{klass_name}, :#{fieldname(field)}, :string" puts "add_column :#{klass_name}, :#{fieldname_iv(field)}, :string" puts "add_column :#{klass_name}, :#{fieldname_salt(field)}, :string" end end puts "#----- End of Migration -----#" end