Class: PDK::Generate::DefinedType

Inherits:
PuppetObject show all
Defined in:
lib/pdk/generate/defined_type.rb

Constant Summary collapse

OBJECT_TYPE =
:defined_type

Instance Attribute Summary

Attributes inherited from PuppetObject

#module_dir, #object_name, #options

Instance Method Summary collapse

Methods inherited from PuppetObject

#check_preconditions, #initialize, #module_metadata, #module_name, #object_type, #render_file, #run, #target_addon_path, #templates, #with_templates, #write_file

Constructor Details

This class inherits a constructor from PDK::Generate::PuppetObject

Instance Method Details

#target_object_pathString

Calculates the path to the .pp file that the new defined type will be written to.



23
24
25
26
27
28
29
30
# File 'lib/pdk/generate/defined_type.rb', line 23

def target_object_path
  @target_pp_path ||= begin
    define_name_parts = object_name.split('::')[1..-1]
    define_name_parts << 'init' if define_name_parts.empty?

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

#target_spec_pathString

Calculates the path to the file where the tests for the new defined type will be written.

will be written.



37
38
39
40
41
42
43
44
45
46
# File 'lib/pdk/generate/defined_type.rb', line 37

def target_spec_path
  @target_spec_path ||= begin
    define_name_parts = object_name.split('::')

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

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

#template_dataHash{Symbol => Object}

Prepares the data needed to render the new defined type template.

provided to the defined type and defined type spec templates during rendering.



13
14
15
16
17
# File 'lib/pdk/generate/defined_type.rb', line 13

def template_data
  data = { name: object_name }

  data
end