Class: PuppetLibrary::Forge::Multi
- Inherits:
-
Object
- Object
- PuppetLibrary::Forge::Multi
- Defined in:
- lib/puppet_library/forge/multi.rb
Instance Method Summary collapse
- #add_forge(forge) ⇒ Object
- #get_module_buffer(author, name, version) ⇒ Object
- #get_module_metadata(author, name) ⇒ Object
- #get_module_metadata_with_dependencies(author, name, version) ⇒ Object
-
#initialize ⇒ Multi
constructor
A new instance of Multi.
- #search_modules(query) ⇒ Object
Constructor Details
#initialize ⇒ Multi
Returns a new instance of Multi.
22 23 24 |
# File 'lib/puppet_library/forge/multi.rb', line 22 def initialize @forges = [] end |
Instance Method Details
#add_forge(forge) ⇒ Object
26 27 28 |
# File 'lib/puppet_library/forge/multi.rb', line 26 def add_forge(forge) @forges << forge end |
#get_module_buffer(author, name, version) ⇒ Object
38 39 40 41 42 43 44 45 46 47 |
# File 'lib/puppet_library/forge/multi.rb', line 38 def get_module_buffer(, name, version) @forges.each do |forge| begin return forge.get_module_buffer(, name, version) rescue ModuleNotFound # Try the next one end end raise ModuleNotFound end |
#get_module_metadata(author, name) ⇒ Object
49 50 51 52 53 54 55 56 57 58 59 60 61 |
# File 'lib/puppet_library/forge/multi.rb', line 49 def (, name) = @forges.inject([]) do |, forge| begin << forge.(, 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
63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 |
# File 'lib/puppet_library/forge/multi.rb', line 63 def (, name, version) = [] @forges.each do |forge| begin << forge.(, 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
30 31 32 33 34 35 36 |
# File 'lib/puppet_library/forge/multi.rb', line 30 def search_modules(query) all_results = @forges.map do |forge| forge.search_modules(query) end.flatten SearchResult.merge_by_full_name(all_results) end |