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



30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
# File 'lib/canql/nodes/main.rb', line 30

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

  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)
    if element.respond_to?(:to_test_result_group)
      test_result_groups << element.to_test_result_group
    end
  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?
  if test_result_groups.any?
    conditions['test_result_groups'] = { Canql::ALL => test_result_groups }
  end
  conditions
end