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
49
50
51
|
# File 'lib/puppet_forge_server/api/v3/modules.rb', line 21
def get_modules(metadata)
modules = {}
metadata.each do |element|
if modules[element.metadata.name]
if max_version(modules[element.metadata.name][:current_release][:version], element.metadata.version) == element.metadata.version
tags = modules[element.metadata.name][:current_release][:tags]
modules[element.metadata.name][:current_release] = get_releases([element]).first
modules[element.metadata.name][:current_release][:tags] = (modules[element.metadata.name][:current_release][:tags] + tags).uniq.compact
end
modules[element.metadata.name][:releases] = (modules[element.metadata.name][:releases] + releases_version(element.metadata)).uniq.sort_by { |r| Gem::Version.new(r[:version]) }.reverse
else
author, name = element.metadata.name.split('-')
unless name
name = author
author = element.metadata.author
end
modules[element.metadata.name] = {
:uri => "/v3/modules/#{element.metadata.name}",
:name => name,
:homepage_url => element.metadata.project_page,
:issues_url => element.metadata.issues_url,
:releases => releases_version(element.metadata),
:current_release => get_releases([element]).first,
:owner => {:username => author, :uri => "/v3/users/#{author}"},
:private => element.private
}
end
end
modules.values
end
|