module PuppetForgeServer::Api::V3::Releases

Public Instance Methods

get_releases(metadata) click to toggle source
# File lib/puppet_forge_server/api/v3/releases.rb, line 19
def get_releases(metadata)
  metadata.map do |element|
    author, name = element.metadata.name.split('-')
    unless name
      name = author
      author = element.metadata.author
    end
    {
        :uri => "/v3/releases/#{element.metadata.name}-#{element.metadata.version}",
        :module => {
            :uri => "/v3/modules/#{element.metadata.name}",
            :name => name,
            :owner => {:username => author, :uri => "/v3/users/#{author}"}
        },
        :metadata => element.metadata.to_hash,
        :version => element.metadata.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