Class: PDK::Generate::DefinedType

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

Constant Summary collapse

PUPPET_STRINGS_TYPE =
'defined_types'.freeze

Instance Attribute Summary

Attributes inherited from PuppetObject

#context, #object_name, #options

Instance Method Summary collapse

Methods inherited from PuppetObject

#can_run?, #check_preconditions, #module_name, #non_template_files, #run, #spec_only?, #stage_change, #stage_changes, #templates, #update_manager_instance, #with_templates

Constructor Details

#initialize(*_args) ⇒ DefinedType

Returns a new instance of DefinedType.



8
9
10
11
12
13
14
15
16
17
# File 'lib/pdk/generate/defined_type.rb', line 8

def initialize(*_args)
  super
  object_name_parts = @object_name.split('::')

  @object_name = if object_name_parts.first == module_name
                   object_name
                 else
                   [module_name, object_name].join('::')
                 end
end

Instance Method Details

#friendly_nameObject



19
20
21
# File 'lib/pdk/generate/defined_type.rb', line 19

def friendly_name
  'Defined Type'.freeze
end

#template_dataObject



38
39
40
# File 'lib/pdk/generate/defined_type.rb', line 38

def template_data
  { name: object_name }
end

#template_filesObject



23
24
25
26
27
28
29
30
31
32
33
34
35
36
# File 'lib/pdk/generate/defined_type.rb', line 23

def template_files
  # Calculate the defined type tests name
  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
  files = { 'defined_type_spec.erb' => "#{File.join('spec', 'defines', *define_name_parts)}_spec.rb" }
  return files if spec_only?

  define_name_parts = object_name.split('::')[1..]
  define_name_parts << 'init' if define_name_parts.empty?
  files['defined_type.erb'] = "#{File.join('manifests', *define_name_parts)}.pp"

  files
end