Class: DataTaster::Detergent
- Inherits:
-
Object
- Object
- DataTaster::Detergent
- Defined in:
- lib/data_taster/detergent.rb
Overview
Returns SQL for given data, based on types. Used for sanitizing inputs.
Constant Summary collapse
- SANITIZE_FUNCTIONS =
[ /CONCAT/, /DATE/, /DAY/, /FORMAT/, /LOWER/, /REPLACE/, /TRIM/, /UCASE/, /UPPER/, ].freeze
Instance Method Summary collapse
- #deliver ⇒ Object
-
#initialize(table_name, column_name, given_value) ⇒ Detergent
constructor
A new instance of Detergent.
- #insert_value_expression(row, client, column_types: {}) ⇒ Object
Constructor Details
#initialize(table_name, column_name, given_value) ⇒ Detergent
Returns a new instance of Detergent.
18 19 20 21 22 |
# File 'lib/data_taster/detergent.rb', line 18 def initialize(table_name, column_name, given_value) @table_name = table_name @column_name = column_name @value = parse_value(given_value) end |
Instance Method Details
#deliver ⇒ Object
24 25 26 27 28 29 30 31 |
# File 'lib/data_taster/detergent.rb', line 24 def deliver return value if value == DataTaster::SKIP_CODE sql = sql_for(value) DataTaster.logger.info("--> #{sql}") sql end |
#insert_value_expression(row, client, column_types: {}) ⇒ Object
33 34 35 36 37 38 39 40 41 42 43 |
# File 'lib/data_taster/detergent.rb', line 33 def insert_value_expression(row, client, column_types: {}) return DataTaster::SKIP_CODE if value == DataTaster::SKIP_CODE if sanitize_function? wash_values(value.to_s, row, client, column_types) elsif value.blank? "NULL" else DataTaster::SqlLiteral.format(client, value, column_type: column_types[column_name.to_s]) end end |