Class: Dcc::Validate::Schematron::Rules::InfluenceConditionsPlacement
- Inherits:
-
Base
- Object
- Dcc::Validate::Schematron::Rule
- Base
- Dcc::Validate::Schematron::Rules::InfluenceConditionsPlacement
- Defined in:
- lib/dcc/validate/schematron/rules/influence_conditions_placement.rb
Overview
dcc:influenceConditions must appear somewhere (global, list, or
quantity level). Error if missing.
Instance Method Summary collapse
Methods inherited from Dcc::Validate::Schematron::Rule
Instance Method Details
#check_on(dcc) ⇒ Object
11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
# File 'lib/dcc/validate/schematron/rules/influence_conditions_placement.rb', line 11 def check_on(dcc) return [] unless Dcc::TypeGuards.has_attribute?(dcc, :measurement_results) mr_list = safe_attr(dcc.measurement_results, :measurement_result) return [] if mr_list.empty? any_present = mr_list.any? do |mr| next false unless Dcc::TypeGuards.has_attribute?(mr, :influence_conditions) next true unless mr.influence_conditions.nil? Dcc::TypeGuards.has_attribute?(mr, :results) && mr.results && has_in_descendants?(mr.results) end any_present ? [] : [ issue( severity: :error, message: "dcc:influenceConditions is missing everywhere", ), ] end |