module PuppetForgeServer::Api::V1::Modules
Public Instance Methods
get_modules(metadata)
click to toggle source
# File lib/puppet_forge_server/api/v1/modules.rb, line 19 def get_modules(metadata) modules = {} metadata.each do |element| if modules[element.metadata.name] if max_version(modules[element.metadata.name][:version], element.metadata.version) == element.metadata.version modules[element.metadata.name][:desc] = element.metadata.description modules[element.metadata.name][:version] = element.metadata.version modules[element.metadata.name][:project_url] = element.metadata.project_page 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 modules[element.metadata.name][:tag_list] = (modules[element.metadata.name][:tag_list] + element.tags).uniq.compact else author, name = element.metadata.name.split('-') unless name name = author author = element.metadata.author end modules[element.metadata.name] = { :author => author, :full_name => element.metadata.name.sub('-', '/'), :name => name, :desc => element.metadata.description || element.metadata.summary, :version => element.metadata.version, :project_url => element.metadata.project_page, :releases => releases_version(element.metadata), :tag_list => element.tags ? element.tags : [author, name], :private => element.private } end end modules.values end
Private Instance Methods
max_version(left, right)
click to toggle source
# File lib/puppet_forge_server/api/v1/modules.rb, line 58 def max_version(left, right) [Gem::Version.new(left), Gem::Version.new(right)].max.version end
releases_version(metadata)
click to toggle source
# File lib/puppet_forge_server/api/v1/modules.rb, line 54 def releases_version(metadata) [{:version => metadata.version}] end