lib/pdk/template.rb in pdk-2.3.0 vs lib/pdk/template.rb in pdk-2.4.0

- old
+ new

@@ -1,59 +1,59 @@ -require 'pdk' - -module PDK - module Template - autoload :Fetcher, 'pdk/template/fetcher' - autoload :Renderer, 'pdk/template/renderer' - autoload :TemplateDir, 'pdk/template/template_dir' - - MODULE_TEMPLATE_TYPE = :module_template - - # Creates a TemplateDir object with the path or URL to the template - # and the block of code to run to be run while the template is available. - # - # The template directory is only guaranteed to be available on disk - # within the scope of the block passed to this method. - # - # @param uri [PDK::Util::TemplateURI] The path to a directory to use as the - # template or a URI to a git repository. - # - # @param context [PDK::Context::AbstractContext] The context in which the template will render to - # - # @yieldparam self [PDK::Template::TemplateDir] The initialised object with - # the template available on disk. - # - # @example Using a git repository as a template - # PDK::Template.with('https://github.com/puppetlabs/pdk-templates') do |t| - # t.render_module('module, PDK.context) do |filename, content, status| - # File.open(filename, 'w') do |file| - # ... - # end - # end - # end - # - # @raise [ArgumentError] If no block is given to this method. - # @raise [PDK::CLI::FatalError] - # @raise [ArgumentError] - # - # @api public - def self.with(uri, context) - unless block_given? - raise ArgumentError, _('%{class_name}.with must be passed a block.') % { class_name: name } - end - unless uri.is_a? PDK::Util::TemplateURI - raise ArgumentError, _('%{class_name}.with must be passed a PDK::Util::TemplateURI, got a %{uri_type}') % { uri_type: uri.class, class_name: name } - end - - Fetcher.with(uri) do |fetcher| - template_dir = TemplateDir.instance(uri, fetcher.path, context) - template_dir.metadata = fetcher.metadata - - template_type = uri.default? ? 'default' : 'custom' - PDK.analytics.event('TemplateDir', 'initialize', label: template_type) - - yield template_dir - end - nil - end - end -end +require 'pdk' + +module PDK + module Template + autoload :Fetcher, 'pdk/template/fetcher' + autoload :Renderer, 'pdk/template/renderer' + autoload :TemplateDir, 'pdk/template/template_dir' + + MODULE_TEMPLATE_TYPE = :module_template + + # Creates a TemplateDir object with the path or URL to the template + # and the block of code to run to be run while the template is available. + # + # The template directory is only guaranteed to be available on disk + # within the scope of the block passed to this method. + # + # @param uri [PDK::Util::TemplateURI] The path to a directory to use as the + # template or a URI to a git repository. + # + # @param context [PDK::Context::AbstractContext] The context in which the template will render to + # + # @yieldparam self [PDK::Template::TemplateDir] The initialised object with + # the template available on disk. + # + # @example Using a git repository as a template + # PDK::Template.with('https://github.com/puppetlabs/pdk-templates') do |t| + # t.render_module('module, PDK.context) do |filename, content, status| + # File.open(filename, 'w') do |file| + # ... + # end + # end + # end + # + # @raise [ArgumentError] If no block is given to this method. + # @raise [PDK::CLI::FatalError] + # @raise [ArgumentError] + # + # @api public + def self.with(uri, context) + unless block_given? + raise ArgumentError, _('%{class_name}.with must be passed a block.') % { class_name: name } + end + unless uri.is_a? PDK::Util::TemplateURI + raise ArgumentError, _('%{class_name}.with must be passed a PDK::Util::TemplateURI, got a %{uri_type}') % { uri_type: uri.class, class_name: name } + end + + Fetcher.with(uri) do |fetcher| + template_dir = TemplateDir.instance(uri, fetcher.path, context) + template_dir.metadata = fetcher.metadata + + template_type = uri.default? ? 'default' : 'custom' + PDK.analytics.event('TemplateDir', 'initialize', label: template_type) + + yield template_dir + end + nil + end + end +end