Class: GS1::Barcode::AttributeValidator

Inherits:
Object
  • Object
show all
Defined in:
lib/gs1/barcode/attribute_validator.rb

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(attribute_record_validator: AttributeValidators::IgnoringRecordValidator.new) ⇒ AttributeValidator

Returns a new instance of AttributeValidator.



14
15
16
# File 'lib/gs1/barcode/attribute_validator.rb', line 14

def initialize(attribute_record_validator: AttributeValidators::IgnoringRecordValidator.new)
  @attribute_record_validator = attribute_record_validator
end

Class Method Details

.for(configuration:) ⇒ Object



4
5
6
7
8
9
10
11
12
# File 'lib/gs1/barcode/attribute_validator.rb', line 4

def self.for(configuration:)
  attribute_record_validator = if configuration.ignore_extra_barcode_elements
                                 AttributeValidators::IgnoringRecordValidator
                               else
                                 AttributeValidators::RecordValidator
                               end

  new(attribute_record_validator: attribute_record_validator.new)
end

Instance Method Details

#validate_data(barcode, attribute_name) ⇒ Object



18
19
20
21
22
# File 'lib/gs1/barcode/attribute_validator.rb', line 18

def validate_data(barcode, attribute_name)
  return unless barcode.instance_variable_get("@#{attribute_name}")

  barcode.errors[attribute_name] << Error.new(:already_defined, persistent: true)
end

#validate_record(barcode, attribute_name, &block) ⇒ Object



24
25
26
# File 'lib/gs1/barcode/attribute_validator.rb', line 24

def validate_record(barcode, attribute_name, &block)
  attribute_record_validator.validate(barcode, attribute_name, &block)
end