Module: PuppetForgeServer::Api::V1::Modules

Included in:
PuppetForgeServer::App::Version1
Defined in:
lib/puppet_forge_server/api/v1/modules.rb

Instance Method Summary collapse

Instance Method Details

#get_modules(metadata) ⇒ Object



20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
# File 'lib/puppet_forge_server/api/v1/modules.rb', line 20

def get_modules()
  modules = {}
  .each do |element|
    if modules[element..name]
      if max_version(modules[element..name][:version], element..version) == element..version
        modules[element..name][:desc] = element..description
        modules[element..name][:version] = element..version
        modules[element..name][:project_url] = element..project_page
      end
      modules[element..name][:releases] = (modules[element..name][:releases] + releases_version(element.)).uniq.sort_by { |r| Gem::Version.new(r[:version]) }.reverse
      modules[element..name][:tag_list] = (modules[element..name][:tag_list] + element.tags).uniq.compact
    else
      name = element..name.sub(/^[^-]+-/, '')
      modules[element..name] = {
        :author => element..author,
        :full_name => element..name.sub('-', '/'),
        :name => name,
        :desc => element..description,
        :version => element..version,
        :project_url => element..project_page,
        :releases => releases_version(element.),
        :tag_list =>  element.tags ? element.tags : [element..author, name],
        :private => element.private
      }
    end
  end

  modules.values
end