class CreateGenerator
Public Instance Methods
copy_migration()
click to toggle source
# File lib/data_classification/generators/data_classification/create_generator.rb, line 18 def copy_migration validate! set_local_assigns! migration_template 'create_migration.rb.erb', "db/migrate/#{migration_file_name}.rb" end
Protected Instance Methods
set_local_assigns!()
click to toggle source
# File lib/data_classification/generators/data_classification/create_generator.rb, line 26 def set_local_assigns! @table_classifications = table_column_classification.map { |params| params.split(':') }.sort_by { |params| params[0] } tables = @table_classifications.map { |table, _column, _classification| table }.uniq.to_sentence.gsub(' ', '_') @migration_file_name = "create_data_classification_for_#{tables}" @migration_class_name = "CreateDataClassification#{tables.camelize}" end
validate!()
click to toggle source
# File lib/data_classification/generators/data_classification/create_generator.rb, line 34 def validate! table_column_classification.each do |data| table, column, classification = data.split(':') if table.blank? || column.blank? || classification.blank? fail "All arguments require 3 parts <table>:<column>:<classification> referenced in '#{data}'" end unless ActiveRecord::Base.connection.table_exists?(table) fail "Table '#{table}' referenced in '#{data}' does not exist" end unless ActiveRecord::Base.connection.column_exists? table, column fail "Column '#{column}' on '#{table}' referenced in '#{data}' does not exist" end if DataClassification::DATA_CLASSIFICATIONS.map(&:to_s).exclude? classification fail "Data classification '#{classification}' referenced in '#{data}' is not valid, must be one of "\ "#{DataClassification::DATA_CLASSIFICATIONS.join(', ')}" end end end