class Puppet::ModuleTool::InstalledModules::ModuleRelease

Attributes

metadata[R]
mod[R]

Public Instance Methods

install(dir) click to toggle source
# File lib/puppet/module_tool/installed_modules.rb, line 89
def install(dir)
  # If we're already installed, there's no need for us to faff about.
end
install_dir() click to toggle source
# File lib/puppet/module_tool/installed_modules.rb, line 85
def install_dir
  Pathname.new(@mod.path).dirname
end
prepare() click to toggle source
# File lib/puppet/module_tool/installed_modules.rb, line 93
def prepare
  # We're already installed; what preparation remains?
end

Public Class Methods

new(source, mod) click to toggle source
# File lib/puppet/module_tool/installed_modules.rb, line 57
def initialize(source, mod)
  @mod = mod
  @metadata = mod.metadata
  name = mod.forge_name.tr('/', '-')
  begin
    version = Semantic::Version.parse(mod.version)
  rescue Semantic::Version::ValidationFailure => e
    Puppet.warning "#{mod.name} (#{mod.path}) has an invalid version number (#{mod.version}). The version has been set to 0.0.0. If you are the maintainer for this module, please update the metadata.json with a valid Semantic Version (http://semver.org)."
    version = Semantic::Version.parse("0.0.0")
  end
  release = "#{name}@#{version}"

  super(source, name, version, {})

  if mod.dependencies
    mod.dependencies.each do |dep|
      results = Puppet::ModuleTool.parse_module_dependency(release, dep)
      dep_name, parsed_range, range = results

      dep.tap do |dep|
        add_constraint('initialize', dep_name, range.to_s) do |node|
          parsed_range === node.version
        end
      end
    end
  end
end