Module: PuppetLibrary::Forge::SearchResult
- Defined in:
- lib/puppet_library/forge/search_result.rb
Class Method Summary collapse
- .combine_search_results(search_results) ⇒ Object
- .max_version(left, right) ⇒ Object
- .merge_by_full_name(results) ⇒ Object
Class Method Details
.combine_search_results(search_results) ⇒ Object
32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 |
# File 'lib/puppet_library/forge/search_result.rb', line 32 def self.combine_search_results(search_results) highest_version, , releases = search_results.inject([nil, [], []]) do |(highest_version, , releases), result| [ max_version(highest_version, result["version"]), + (result["tag_list"] || []), releases + (result["releases"] || []) ] end combined_result = search_results.first.tap do |result| result["version"] = highest_version result["tag_list"] = .uniq result["releases"] = releases.uniq.version_sort_by {|r| r["version"]}.reverse end end |
.max_version(left, right) ⇒ Object
48 49 50 |
# File 'lib/puppet_library/forge/search_result.rb', line 48 def self.max_version(left, right) [Gem::Version.new(left), Gem::Version.new(right)].max.version end |
.merge_by_full_name(results) ⇒ Object
22 23 24 25 26 27 28 29 30 |
# File 'lib/puppet_library/forge/search_result.rb', line 22 def self.merge_by_full_name(results) results_by_module = results.group_by do |result| result["full_name"] end results_by_module.values.map do |module_results| combine_search_results(module_results) end.flatten end |