Module: Canql::Nodes::WithConditions

Defined in:
lib/canql/nodes/main.rb

Overview

Provides meta data for with conditions that return multiple instances of a condition type as an array

Instance Method Summary collapse

Instance Method Details

#meta_data_itemObject



20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
# File 'lib/canql/nodes/main.rb', line 20

def 
  conditions = {}
  anomalies = []
  genetic_tests = []
  test_results = []

  post.elements.each do |element|
    anomalies << element.to_anomaly if element.respond_to?(:to_anomaly)
    genetic_tests << element.to_genetic_test if element.respond_to?(:to_genetic_test)
    test_results << element.to_test_result if element.respond_to?(:to_test_result)
  end

  conditions['anomalies'] = { Canql::ALL => anomalies } if anomalies.any?
  conditions['genetic_tests'] = { Canql::ALL => genetic_tests } if genetic_tests.any?
  conditions['test_results'] = { Canql::ALL => test_results } if test_results.any?
  conditions
end