Class: SecureDBFields::DBDeployment::ReadableView
- Inherits:
-
Object
- Object
- SecureDBFields::DBDeployment::ReadableView
- Defined in:
- lib/secure_db_fields/db_deployment.rb
Constant Summary collapse
- IDENTIFIER =
ViewCommand::IDENTIFIER
- QUALIFIED_IDENTIFIER =
ViewCommand::QUALIFIED_IDENTIFIER
Instance Method Summary collapse
-
#initialize(options) ⇒ ReadableView
constructor
A new instance of ReadableView.
- #to_sql ⇒ Object
Constructor Details
#initialize(options) ⇒ ReadableView
Returns a new instance of ReadableView.
143 144 145 146 147 148 149 150 151 152 153 154 |
# File 'lib/secure_db_fields/db_deployment.rb', line 143 def initialize() @table = qualified_identifier!(.fetch(:table), "--table") @view = qualified_identifier!(.fetch(:view), "--view") @uid_column = identifier!(.fetch(:uid_column), "--uid-column") field = .fetch(:field) @plain_field, @encrypted_column = parse_field(field) @alias = identifier!([:as] || @plain_field, "--as") @columns = Array(.fetch(:columns)).map { |column| identifier!(column, "--columns") } @aad_table = @table.split(".").last rescue KeyError => e raise OptionParser::MissingArgument, e.key.to_s end |
Instance Method Details
#to_sql ⇒ Object
156 157 158 159 160 161 162 163 164 |
# File 'lib/secure_db_fields/db_deployment.rb', line 156 def to_sql select_list = (@columns.map { |column| " `#{column}`" } + [decrypt_expression]).join(",\n") <<~SQL CREATE OR REPLACE ALGORITHM=MERGE VIEW #{quote_qualified(@view)} AS SELECT #{select_list} FROM #{quote_qualified(@table)}; SQL end |