Method: Puppet::ModuleTool::Metadata#add_dependency

Defined in:
lib/puppet/module_tool/metadata.rb

#add_dependency(name, version_requirement = nil, repository = nil) ⇒ Object

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

Validates the name and version_requirement for a dependency, then creates the Dependency and adds it. Returns the Dependency that was added.

Raises:

  • (ArgumentError)


67
68
69
70
71
72
73
74
75
76
77
78
# File 'lib/puppet/module_tool/metadata.rb', line 67

def add_dependency(name, version_requirement = nil, repository = nil)
  validate_name(name)
  validate_version_range(version_requirement) if version_requirement

  dup = @data['dependencies'].find { |d| d.full_module_name == name && d.version_requirement != version_requirement }
  raise ArgumentError, _("Dependency conflict for %{module_name}: Dependency %{name} was given conflicting version requirements %{version_requirement} and %{dup_version}. Verify that there are no duplicates in the metadata.json.") % { module_name: full_module_name, name: name, version_requirement: version_requirement, dup_version: dup.version_requirement } if dup

  dep = Dependency.new(name, version_requirement, repository)
  @data['dependencies'].add(dep)

  dep
end