This class provides the DSL used for evaluating the module’s ‘Modulefile’. These methods are used to concisely define this module’s attributes, which are later rendered as PSON into a ‘metadata.json’ file.
Read the filename and eval its Ruby code to set values in the
Metadata metadata instance.
# File lib/puppet/module_tool/modulefile.rb, line 12 def self.evaluate(metadata, filename) builder = new(metadata) if File.file?(filename) builder.instance_eval(File.read(filename.to_s), filename.to_s, 1) else Puppet.warning "No Modulefile: #{filename}" end return builder end
Instantiate with the Metadata
metadata instance.
# File lib/puppet/module_tool/modulefile.rb, line 23 def initialize(metadata) @metadata = metadata end
Add a dependency with the full_module_name name (e.g.
“myuser-mymodule”), an optional version_requirement (e.g.
“0.0.1”) and repository (a URL string). Optional. Can be
called multiple times to add many dependencies.
# File lib/puppet/module_tool/modulefile.rb, line 41 def dependency(name, version_requirement = nil, repository = nil) @metadata.dependencies << Dependency.new(name, version_requirement, repository) end
Set the description
# File lib/puppet/module_tool/modulefile.rb, line 66 def description(description) @metadata.description = description end
Set the license
# File lib/puppet/module_tool/modulefile.rb, line 56 def license(license) @metadata.license = license end
Set the full_module_name (e.g. “myuser-mymodule”), which will
also set the username and module name. Required.
# File lib/puppet/module_tool/modulefile.rb, line 29 def name(name) @metadata.full_module_name = name end
Set the project page
# File lib/puppet/module_tool/modulefile.rb, line 71 def project_page(project_page) @metadata.project_page = project_page end
Set the source
# File lib/puppet/module_tool/modulefile.rb, line 46 def source(source) @metadata.source = source end
Set the summary
# File lib/puppet/module_tool/modulefile.rb, line 61 def summary(summary) @metadata.summary = summary end
Set the module version (e.g., “0.0.1”). Required.
# File lib/puppet/module_tool/modulefile.rb, line 34 def version(version) @metadata.version = version end