class Librarian::Puppet::Source::Forge::RepoV3
Public Class Methods
new(source, name)
click to toggle source
Calls superclass method
Librarian::Puppet::Source::Repo.new
# File lib/librarian/puppet/source/forge/repo_v3.rb, line 13 def initialize(source, name) PuppetForge.host = source.uri.clone super(source, name) end
Public Instance Methods
dependencies(version)
click to toggle source
# File lib/librarian/puppet/source/forge/repo_v3.rb, line 24 def dependencies(version) array = get_release(version).metadata[:dependencies].map{|d| [d['name'], d['version_requirement']]} Hash[*array.flatten(1)] end
get_versions()
click to toggle source
# File lib/librarian/puppet/source/forge/repo_v3.rb, line 18 def get_versions get_module.releases.map do |r| r.version unless r.deleted_at != nil end.compact end
url(name, version)
click to toggle source
# File lib/librarian/puppet/source/forge/repo_v3.rb, line 29 def url(name, version) if name == "#{get_module().owner.username}/#{get_module().name}" release = get_release(version) else # should never get here as we use one repo object for each module (to be changed in the future) debug { "Looking up url for #{name}@#{version}" } release = PuppetForge::Release.find("#{name}-#{version}") end "#{source}#{release.file_uri}" end
Private Instance Methods
get_module()
click to toggle source
# File lib/librarian/puppet/source/forge/repo_v3.rb, line 42 def get_module @module ||= PuppetForge::Module.find(name) raise(Error, "Unable to find module '#{name}' on #{source}") unless @module @module end
get_release(version)
click to toggle source
# File lib/librarian/puppet/source/forge/repo_v3.rb, line 48 def get_release(version) release = get_module.releases.find{|r| r.version == version.to_s} if release.nil? versions = get_module.releases.map{|r| r.version} raise Error, "Unable to find version '#{version}' for module '#{name}' on #{source} amongst #{versions}" end release end