module PuppetForgeServer::Api::V3::Modules
Public Instance Methods
get_modules(metadata)
click to toggle source
# File lib/puppet_forge_server/api/v3/modules.rb, line 20 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 # Saving curret release tags for merging with new max version current release 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
Private Instance Methods
max_version(left, right)
click to toggle source
# File lib/puppet_forge_server/api/v3/modules.rb, line 57 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/v3/modules.rb, line 53 def releases_version(metadata) [{:version => metadata.version, :uri => "/v3/releases/#{metadata.name}-#{metadata.version}", :slug => "#{metadata.name}-#{metadata.version}"}] end