class Topographer::Importer::Mapper::ValidationFieldMapping
Attributes
name[R]
Public Class Methods
new(name, input_columns, &validation_block)
click to toggle source
# File lib/topographer/importer/mapper/validation_field_mapping.rb, line 7 def initialize(name, input_columns, &validation_block) unless block_given? raise Topographer::InvalidMappingError, 'Validation fields must have a behavior block' end @name = name @input_columns = Array(input_columns) @validation_block = validation_block @output_field = nil end
Public Instance Methods
process_input(input, result)
click to toggle source
# File lib/topographer/importer/mapper/validation_field_mapping.rb, line 17 def process_input(input, result) mapping_input = input.slice(*input_columns) @invalid_keys = get_invalid_keys(mapping_input) if @invalid_keys.blank? @validation_block.(mapping_input) else result.add_error(name, invalid_input_error) end rescue => exception result.add_error(name, exception.message) end
required?()
click to toggle source
# File lib/topographer/importer/mapper/validation_field_mapping.rb, line 31 def required? true end
Private Instance Methods
get_invalid_keys(input)
click to toggle source
# File lib/topographer/importer/mapper/validation_field_mapping.rb, line 37 def get_invalid_keys(input) @input_columns - input.keys end