Class: Chemicalml::Convention::Compchem::Constraints::CalculationRequiresFinalization
- Inherits:
-
Chemicalml::Convention::Constraint::NodeConstraint
- Object
- Constraint
- Chemicalml::Convention::Constraint::NodeConstraint
- Chemicalml::Convention::Compchem::Constraints::CalculationRequiresFinalization
- Includes:
- ModulePredicates
- Defined in:
- lib/chemicalml/convention/compchem/constraints/calculation_requires_finalization.rb
Overview
Co-constraint: if a calculation module is present inside a job, a finalization MUST also be present.
Instance Method Summary collapse
Methods included from ModulePredicates
#calculation_module?, #child_modules_with, #cml_module?, #compchem_root?, #environment_module?, #finalization_module?, #initialization_module?, #job_list_module?, #job_module?
Methods inherited from Chemicalml::Convention::Constraint::NodeConstraint
Instance Method Details
#check_node(node, path) ⇒ Object
13 14 15 16 17 18 19 20 21 22 23 |
# File 'lib/chemicalml/convention/compchem/constraints/calculation_requires_finalization.rb', line 13 def check_node(node, path) calculations = child_modules_with(node, 'compchem:calculation') finalizations = child_modules_with(node, 'compchem:finalization') return [] if calculations.empty? return [] unless finalizations.empty? [violation(path: path.join('/'), message: 'job module has a calculation but no finalization ' \ '(finalization MUST be present when calculation is)')] end |