Module: Textus::Dependencies

Defined in:
lib/textus/dependencies.rb

Class Method Summary collapse

Class Method Details

.deps_of(manifest, key) ⇒ Object



3
4
5
6
7
8
# File 'lib/textus/dependencies.rb', line 3

def self.deps_of(manifest, key)
  entry = manifest.entries.find { |e| e.key == key } or return []
  result = Array(entry.projection&.fetch("select", nil)).map { |s| s }
  Array(entry.generator&.fetch("sources", nil)).each { |s| result << s }
  result.uniq
end

.published_of(manifest) ⇒ Object



17
18
19
20
21
# File 'lib/textus/dependencies.rb', line 17

def self.published_of(manifest)
  manifest.entries.reject { |e| e.publish_to.empty? }.map do |e|
    { "key" => e.key, "publish_to" => e.publish_to }
  end
end

.rdeps_of(manifest, key) ⇒ Object



10
11
12
13
14
15
# File 'lib/textus/dependencies.rb', line 10

def self.rdeps_of(manifest, key)
  manifest.entries.each_with_object([]) do |e, acc|
    sources = Array(e.projection&.fetch("select", nil)) + Array(e.generator&.fetch("sources", nil))
    acc << e.key if sources.any? { |s| s == key || key.start_with?("#{s}.") }
  end
end