Class: Chemicalml::Convention::Molecular::Constraints::BondOrderShouldBeInEnum

Inherits:
Constraint::NodeConstraint show all
Includes:
Chemicalml::Cml::Enums
Defined in:
lib/chemicalml/convention/molecular/constraints/bond_order_should_be_in_enum.rb

Overview

A <bond>'s order attribute SHOULD be one of the XSD orderType enum values: S/1/D/2/T/3/A/unknown/other. Warning severity — CML permits extension values via convention-specific dicts.

Constant Summary

Constants included from Chemicalml::Cml::Enums

Chemicalml::Cml::Enums::ACTIONORDER_VALUES, Chemicalml::Cml::Enums::ANGLEUNITS_VALUES, Chemicalml::Cml::Enums::CELLPARAMETER_VALUES, Chemicalml::Cml::Enums::CHIRALITY_VALUES, Chemicalml::Cml::Enums::DIMENSION_VALUES, Chemicalml::Cml::Enums::EIGENORIENTATION_VALUES, Chemicalml::Cml::Enums::ELEMENT_TYPE_VALUES, Chemicalml::Cml::Enums::ERRORBASIS_VALUES, Chemicalml::Cml::Enums::FORMAT_VALUES, Chemicalml::Cml::Enums::FT_VALUES, Chemicalml::Cml::Enums::INHERIT_VALUES, Chemicalml::Cml::Enums::LATTICE_VALUES, Chemicalml::Cml::Enums::LINKTYPE_VALUES, Chemicalml::Cml::Enums::LM_VALUES, Chemicalml::Cml::Enums::MATRIX_VALUES, Chemicalml::Cml::Enums::MEASUREMENT_VALUES, Chemicalml::Cml::Enums::ORDER_VALUES, Chemicalml::Cml::Enums::PEAKMULTIPLICITY_VALUES, Chemicalml::Cml::Enums::PEAKSHAPE_VALUES, Chemicalml::Cml::Enums::PEAKSTRUCTURETYPE_VALUES, Chemicalml::Cml::Enums::REACTIONFORMAT_VALUES, Chemicalml::Cml::Enums::REACTIONROLE_VALUES, Chemicalml::Cml::Enums::REACTIONSTEPLISTTYPE_VALUES, Chemicalml::Cml::Enums::REACTIONTYPE_VALUES, Chemicalml::Cml::Enums::SCHEME_VALUES, Chemicalml::Cml::Enums::SHAPE_VALUES, Chemicalml::Cml::Enums::SPACE_VALUES, Chemicalml::Cml::Enums::SPECTRUMTYPE_VALUES, Chemicalml::Cml::Enums::STATE_VALUES, Chemicalml::Cml::Enums::STEREO_VALUES, Chemicalml::Cml::Enums::SUBSTANCELISTTYPE_VALUES, Chemicalml::Cml::Enums::TABLETYPE_VALUES

Instance Method Summary collapse

Methods inherited from Constraint::NodeConstraint

#check

Instance Method Details

#check_node(node, _path) ⇒ Object



17
18
19
20
21
22
23
24
25
26
27
# File 'lib/chemicalml/convention/molecular/constraints/bond_order_should_be_in_enum.rb', line 17

def check_node(node, _path)
  order = node.order.to_s
  return [] if order.empty?
  return [] if ORDER_VALUES.include?(order)

  [violation(path: yield_path(node),
             message: "bond #{node.id.inspect} order #{order.inspect} should be one of " \
                      "#{ORDER_VALUES.to_a.sort.inspect}",
             severity: :warning,
             value: order)]
end