Class: PDK::Generate::DefinedType

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

Constant Summary collapse

OBJECT_TYPE =
:defined_type
PUPPET_STRINGS_TYPE =
'defined_types'.freeze

Instance Attribute Summary

Attributes inherited from PuppetObject

#module_dir, #object_name, #options

Instance Method Summary collapse

Methods inherited from PuppetObject

#can_run?, #check_preconditions, class_name_from_object_name, #initialize, #module_name, #object_type, puppet_strings_type, #render_file, #run, #spec_only?, #target_device_path, #target_type_path, #target_type_spec_path, #targets, #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.

Returns:

  • (String)

    the path where the new defined type will be written.



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

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.

Returns:

  • (String)

    the path where the tests for the new defined type



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

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.

Returns:

  • (Hash{Symbol => Object})

    a hash of information that will be



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

def template_data
  data = { name: object_name }

  data
end