Module: PuppetForgeServer::Api::V3::Releases

Includes:
Utils::Encoding
Included in:
Modules, PuppetForgeServer::App::Version3
Defined in:
lib/puppet_forge_server/api/v3/releases.rb

Instance Method Summary collapse

Methods included from Utils::Encoding

#to_utf8

Instance Method Details

#get_releases(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
# File 'lib/puppet_forge_server/api/v3/releases.rb', line 20

def get_releases()
  .map do |element|
    author, name = element..name.split('-')
    unless name
      name = author
      author = element..author
    end
    {
        :uri => "/v3/releases/#{element..name}-#{element..version}",
        :module => {
            :uri => "/v3/modules/#{element..name}",
            :name => name,
            :owner => {:username => author, :uri => "/v3/users/#{author}"}
        },
        :metadata => element..to_hash,
        :version => element..version,
        :tags => element.tags ? element.tags : [author, name],
        :file_uri => "/v3/files#{element.path}",
        :file_md5 => element.checksum,
        :deleted_at => element.deleted_at,
        :readme => to_utf8(element.readme)
    }
  end.uniq{|r| r[:version]}.sort_by { |r| Gem::Version.new(r[:version]) }
end