Class: Dcc::Validate::Schematron::Rules::AdministrativeDataCompleteness
- Inherits:
-
Base
- Object
- Dcc::Validate::Schematron::Rule
- Base
- Dcc::Validate::Schematron::Rules::AdministrativeDataCompleteness
- Defined in:
- lib/dcc/validate/schematron/rules/administrative_data_completeness.rb
Overview
Validates that all required sections are present in
dcc:administrativeData: dccSoftware, coreData, items,
calibrationLaboratory, respPersons, customer.
Constant Summary collapse
- REQUIRED_SECTIONS =
{ dcc_software: "dccSoftware", core_data: "coreData", items: "items", calibration_laboratory: "calibrationLaboratory", resp_persons: "respPersons", customer: "customer", }.freeze
Instance Method Summary collapse
Methods inherited from Dcc::Validate::Schematron::Rule
Instance Method Details
#check_on(dcc) ⇒ Object
20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 |
# File 'lib/dcc/validate/schematron/rules/administrative_data_completeness.rb', line 20 def check_on(dcc) issues = [] return issues unless Dcc::TypeGuards.has_attribute?(dcc, :administrative_data) admin = dcc.administrative_data return [issue(severity: :error, message: "administrativeData is missing")] unless admin REQUIRED_SECTIONS.each do |attr, label| value = Dcc::TypeGuards.has_attribute?(admin, attr) ? admin.public_send(attr) : nil next unless value.nil? || ((value.is_a?(::String) || value.is_a?(::Array)) && value.empty?) issues << issue( severity: :error, message: "dcc:administrativeData/#{label} is missing", ) end issues end |