module Parxer::ParserValidator

Public Instance Methods

add_row_validator(validator_name, config, &block) click to toggle source
# File lib/parxer/parsers/concerns/validator.rb, line 70
def add_row_validator(validator_name, config, &block)
  row_validators.add_validator(validator_name, config, &block)
end
add_validator(validator_name, config, &block) click to toggle source
# File lib/parxer/parsers/concerns/validator.rb, line 62
def add_validator(validator_name, config, &block)
  file_validators.add_validator(validator_name, config, &block)
end
file_validators() click to toggle source
# File lib/parxer/parsers/concerns/validator.rb, line 8
def file_validators
  @file_validators ||= inherited_collection(self, :file_validators, Parxer::Validators)
end
row_validators() click to toggle source
# File lib/parxer/parsers/concerns/validator.rb, line 12
def row_validators
  @row_validators ||= inherited_collection(self, :row_validators, Parxer::Validators)
end
valid_file?() click to toggle source
# File lib/parxer/parsers/concerns/validator.rb, line 16
def valid_file?
  !file_error
end
validate_file() click to toggle source
# File lib/parxer/parsers/concerns/validator.rb, line 20
def validate_file
  file_validators.each do |validator|
    validator.context = self
    next if !valid_file? || validator.validate
    @file_error = validator.id
  end

  valid_file?
end
validate_row() click to toggle source
# File lib/parxer/parsers/concerns/validator.rb, line 30
def validate_row
  row_validators.each do |validator|
    validator.context = self
    next if !validate_row?(validator) || validator.validate
    row.add_error(:base, validator.id)
  end

  !row.errors?
end
validate_row?(validator) click to toggle source
# File lib/parxer/parsers/concerns/validator.rb, line 40
def validate_row?(validator)
  attrs = validator.config[:if_valid]
  return !row.errors? if attrs.blank?
  attrs.select { |a| row.attribute_error?(a) }.none?
end
validate_row_attribute() click to toggle source
# File lib/parxer/parsers/concerns/validator.rb, line 46
def validate_row_attribute
  attribute.validators.each do |validator|
    validator.context = self
    next if row.attribute_error?(attribute.id) || validator.validate
    row.add_error(attribute.id, validator.id)
  end

  !row.attribute_error?(attribute.id)
end