Class: PuppetLibrary::Forge::Multi

Inherits:
Object
  • Object
show all
Defined in:
lib/puppet_library/forge/multi.rb

Instance Method Summary collapse

Instance Method Details

#add_forge(forge) ⇒ Object



22
23
24
# File 'lib/puppet_library/forge/multi.rb', line 22

def add_forge(forge)
    forges << forge
end

#get_module_buffer(author, name, version) ⇒ Object

Raises:



34
35
36
37
38
39
40
41
42
43
# File 'lib/puppet_library/forge/multi.rb', line 34

def get_module_buffer(author, name, version)
    forges.each do |forge|
        begin
            return forge.get_module_buffer(author, name, version)
        rescue ModuleNotFound
            # Try the next one
        end
    end
    raise ModuleNotFound
end

#get_module_metadata(author, name) ⇒ Object

Raises:



45
46
47
48
49
50
51
52
53
54
55
56
57
# File 'lib/puppet_library/forge/multi.rb', line 45

def (author, name)
     = forges.inject([]) do |, forge|
        begin
             << forge.(author, name)
        rescue ModuleNotFound
            
        end
    end
    raise ModuleNotFound if .empty?
    .deep_merge.tap do ||
        ["releases"] = ["releases"].unique_by { |release| release["version"] }
    end
end

#get_module_metadata_with_dependencies(author, name, version) ⇒ Object



59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
# File 'lib/puppet_library/forge/multi.rb', line 59

def (author, name, version)
     = []
    forges.each do |forge|
        begin
             << forge.(author, name, version)
        rescue ModuleNotFound
            # Try the next one
        end
    end
    raise ModuleNotFound if .empty?
    .deep_merge.tap do ||
        .each do |module_name, releases|
            [module_name] = releases.unique_by { |release| release["version"] }
        end
    end
end

#search_modules(query) ⇒ Object



26
27
28
29
30
31
32
# File 'lib/puppet_library/forge/multi.rb', line 26

def search_modules(query)
    all_results = forges.map do |forge|
        forge.search_modules(query)
    end.flatten

    SearchResult.merge_by_full_name(all_results)
end