Module: PuppetfileResolver::SpecSearchers::Forge

Defined in:
lib/puppetfile-resolver/spec_searchers/forge.rb

Class Method Summary collapse

Class Method Details

.find_all(dependency, cache, resolver_ui, config) ⇒ Object



14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
# File 'lib/puppetfile-resolver/spec_searchers/forge.rb', line 14

def self.find_all(dependency, cache, resolver_ui, config)
  dep_id = ::PuppetfileResolver::SpecSearchers::Common.dependency_cache_id(self, dependency)

  # Has the information been cached?
  return cache.load(dep_id) if cache.exist?(dep_id)

  result = []
  # Query the forge
  fetch_all_module_releases(dependency.owner, dependency.name, resolver_ui, config) do |partial_releases|
    partial_releases.each do |release|
      result << Models::ModuleSpecification.new(
        name: release['module']['name'],
        owner: release['module']['owner']['slug'],
        origin: :forge,
        version: release['version'],
        metadata: ::PuppetfileResolver::Util.symbolise_object(release['metadata'])
      )
    end
  end

  cache.save(dep_id, result)
  result
end