Class: Chemicalml::Convention::UnitDictionary::Constraints::UnitMustHaveMultiplierOrConstantToSi
- Inherits:
-
Constraint::NodeConstraint
- Object
- Constraint
- Constraint::NodeConstraint
- Chemicalml::Convention::UnitDictionary::Constraints::UnitMustHaveMultiplierOrConstantToSi
- Defined in:
- lib/chemicalml/convention/unit_dictionary/constraints/unit_must_have_multiplier_or_constant_to_si.rb
Overview
A <unit> element MUST have at least one of multiplierToSI
or constantToSI — to define the conversion to the parent
SI unit. Per the unit-dictionary convention spec.
Instance Method Summary collapse
Methods inherited from Constraint::NodeConstraint
Instance Method Details
#check_node(node, _path) ⇒ Object
14 15 16 17 18 19 20 21 22 |
# File 'lib/chemicalml/convention/unit_dictionary/constraints/unit_must_have_multiplier_or_constant_to_si.rb', line 14 def check_node(node, _path) has_multiplier = !node.multiplier_to_si.to_s.strip.empty? has_constant = !node.constant_to_si.to_s.strip.empty? return [] if has_multiplier || has_constant [violation(path: yield_path(node), message: "unit #{node.id.inspect} must have at least one of " \ 'multiplierToSI or constantToSI to convert to parent SI')] end |