class Puppet::ModuleTool::ModulefileReader

Modulefile

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.

Public Class Methods

evaluate(metadata, filename) click to toggle source

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
new(metadata) click to toggle source

Instantiate with the Metadata metadata instance.

# File lib/puppet/module_tool/modulefile.rb, line 23
def initialize(metadata)
  @metadata = metadata
end

Public Instance Methods

author(author) click to toggle source

Set the author or default to username

# File lib/puppet/module_tool/modulefile.rb, line 51
def author(author)
    @metadata.author = author
end
dependency(name, version_requirement = nil, repository = nil) click to toggle source

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
description(description) click to toggle source

Set the description

# File lib/puppet/module_tool/modulefile.rb, line 66
def description(description)
   @metadata.description = description
end
license(license) click to toggle source

Set the license

# File lib/puppet/module_tool/modulefile.rb, line 56
def license(license)
  @metadata.license = license
end
name(name) click to toggle source

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
project_page(project_page) click to toggle source

Set the project page

# File lib/puppet/module_tool/modulefile.rb, line 71
def project_page(project_page)
   @metadata.project_page = project_page
 end
source(source) click to toggle source

Set the source

# File lib/puppet/module_tool/modulefile.rb, line 46
def source(source)
  @metadata.source = source
end
summary(summary) click to toggle source

Set the summary

# File lib/puppet/module_tool/modulefile.rb, line 61
def summary(summary)
   @metadata.summary = summary
 end
version(version) click to toggle source

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