Class: DataVeil::Masking::Initializer
- Inherits:
-
Object
- Object
- DataVeil::Masking::Initializer
- Defined in:
- lib/data_veil/masking/initializer.rb
Class Method Summary collapse
- .create_mask_classes(masking_config_path) ⇒ Object
- .load_database_config(database_config_path, environment) ⇒ Object
- .setup(database_config_path:, masking_config_path:, environment:) ⇒ Object
Class Method Details
.create_mask_classes(masking_config_path) ⇒ Object
19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 |
# File 'lib/data_veil/masking/initializer.rb', line 19 def self.create_mask_classes(masking_config_path) config = YAML.load_file(masking_config_path) config.flat_map do |database_name, tables| base_class_name = "#{database_name.classify}Record" base_klass = Class.new(ActiveRecord::Base) do include DataVeil::Mask::Base self.abstract_class = true end # connects_toは Anonymous class is not allowed.なので命名する。 base_class = DataVeil::Mask.const_set(base_class_name, base_klass) base_class.connects_to database: { writing: database_name.to_sym, reading: database_name.to_sym } tables.map do |table_name, columns| Class.new(base_class) do self.table_name = table_name class_attribute :columns_to_mask, default: columns end end end end |
.load_database_config(database_config_path, environment) ⇒ Object
14 15 16 17 |
# File 'lib/data_veil/masking/initializer.rb', line 14 def self.load_database_config(database_config_path, environment) db_config = YAML.safe_load(ERB.new(File.read(database_config_path)).result, aliases: true) ActiveRecord::Base.configurations = db_config[environment] end |
.setup(database_config_path:, masking_config_path:, environment:) ⇒ Object
6 7 8 9 10 11 12 |
# File 'lib/data_veil/masking/initializer.rb', line 6 def self.setup(database_config_path:, masking_config_path:, environment:) puts "environment: #{environment}" puts "database_config_path: #{database_config_path}" load_database_config(database_config_path, environment) puts "masking_config_path: #{masking_config_path}" create_mask_classes(masking_config_path) end |