module R10K module ModuleLoader class Puppetfile class DSL # A barebones implementation of the Puppetfile DSL # # @api private def initialize(librarian, metadata_only: false) @librarian = librarian @metadata_only = metadata_only end def mod(name, args = nil) if args.is_a?(Hash) opts = args else opts = { type: 'forge', version: args } end if @metadata_only @librarian.add_module_metadata(name, opts) else @librarian.add_module(name, opts) end end def forge(location) @librarian.set_forge(location) end def moduledir(location) @librarian.set_moduledir(location) end def exclusion(name) # noop end def method_missing(method, *args) raise NoMethodError, _("unrecognized declaration '%{method}'") % {method: method} end end end end end