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