Module: Measures::ElmDependencyFinder

Defined in:
lib/measure-loader/elm_dependency_finder.rb

Class Method Summary collapse

Class Method Details

.find_dependencies(cql_library_files, main_cql_library_id) ⇒ Object



5
6
7
8
9
10
11
12
13
14
15
# File 'lib/measure-loader/elm_dependency_finder.rb', line 5

def find_dependencies(cql_library_files, main_cql_library_id)
  elms = cql_library_files.map(&:elm)
  all_elms_dep_map = Hash[elms.map { |elm| [Helpers.elm_id(elm), make_statement_deps_for_elm(elm)] }]
  needed_deps_map = Hash[elms.map { |elm| [Helpers.elm_id(elm), {}] }]

  needed_deps_map[main_cql_library_id] = all_elms_dep_map[main_cql_library_id]
  needed_deps_map[main_cql_library_id].each_value do |stmnts|
    stmnts.each { |stmnt| deep_add_external_library_deps(stmnt, needed_deps_map, all_elms_dep_map) }
  end
  return needed_deps_map
end