Sha256: 88b511bb026e836f578c4e90f97f9b23049faa7927df66b2a1158e52463c522b

Contents?: true

Size: 1.46 KB

Versions: 2

Compression:

Stored size: 1.46 KB

Contents

require 'pdk/generators/puppet_object'

module PDK
  module Generate
    class PuppetClass < PuppetObject
      OBJECT_TYPE = :class

      # Prepares the data needed to render the new Puppet class template.
      #
      # @return [Hash{Symbol => Object}] a hash of information that will be
      # provided to the class and class spec templates during rendering.
      def template_data
        data = { name: object_name }

        data
      end

      # Calculates the path to the .pp file that the new class will be written
      # to.
      #
      # @return [String] the path where the new class will be written.
      def target_object_path
        @target_pp_path ||= begin
          class_name_parts = object_name.split('::')[1..-1]
          class_name_parts << 'init' if class_name_parts.empty?

          "#{File.join(module_dir, 'manifests', *class_name_parts)}.pp"
        end
      end

      # Calculates the path to the file that the tests for the new class will
      # be written to.
      #
      # @return [String] the path where the tests for the new class will be
      # written.
      def target_spec_path
        @target_spec_path ||= begin
          class_name_parts = object_name.split('::')

          # drop the module name if the object name contains multiple parts
          class_name_parts.delete_at(0) if class_name_parts.length > 1

          "#{File.join(module_dir, 'spec', 'classes', *class_name_parts)}_spec.rb"
        end
      end
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
pdk-1.0.1 lib/pdk/generators/puppet_class.rb
pdk-1.0.0 lib/pdk/generators/puppet_class.rb