Class: Puppet::Generate::Models::Type::Type Private

Inherits:
Object
  • Object
show all
Defined in:
lib/puppet/generate/models/type/type.rb

Overview

This class is part of a private API. You should avoid using this class if possible, as it may be removed or be changed in the future.

A model for Puppet resource types.

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(type) ⇒ void

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

Initializes a type model.

Parameters:


33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
# File 'lib/puppet/generate/models/type/type.rb', line 33

def initialize(type)
  @name = Puppet::Pops::Types::StringConverter.convert(type.name.to_s, '%p')
  @doc = type.doc.strip
  @properties = type.properties.map { |p| Property.new(p) }
  @parameters = type.parameters.map do |name|
    Property.new(type.paramclass(name))
  end
  sc = Puppet::Pops::Types::StringConverter.singleton
  @title_patterns = Hash[type.title_patterns.map do |mapping|
    [
      sc.convert(mapping[0], '%p'),
      sc.convert(mapping[1].map do |names|
        next if names.empty?
        raise Puppet::Error, _('title patterns that use procs are not supported.') unless names.size == 1
        names[0].to_s
      end, '%p')
    ]
  end]
  @isomorphic = type.isomorphic?
  # continue to emit capability as false when rendering the ERB
  # template, so that pcore modules generated prior to puppet7 can be
  # read by puppet7 and vice-versa.
  @capability = false
end

Instance Attribute Details

#capabilityObject (readonly)

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

Gets the capability member attribute of the type


28
29
30
# File 'lib/puppet/generate/models/type/type.rb', line 28

def capability
  @capability
end

#docObject (readonly)

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

Gets the doc string of the type.


13
14
15
# File 'lib/puppet/generate/models/type/type.rb', line 13

def doc
  @doc
end

#isomorphicObject (readonly)

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

Gets the isomorphic member attribute of the type


25
26
27
# File 'lib/puppet/generate/models/type/type.rb', line 25

def isomorphic
  @isomorphic
end

#nameObject (readonly)

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

Gets the name of the type as a Puppet string literal.


10
11
12
# File 'lib/puppet/generate/models/type/type.rb', line 10

def name
  @name
end

#parametersObject (readonly)

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

Gets the parameters of the type.


19
20
21
# File 'lib/puppet/generate/models/type/type.rb', line 19

def parameters
  @parameters
end

#propertiesObject (readonly)

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

Gets the properties of the type.


16
17
18
# File 'lib/puppet/generate/models/type/type.rb', line 16

def properties
  @properties
end

#title_patternsObject (readonly)

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

Gets the title patterns of the type


22
23
24
# File 'lib/puppet/generate/models/type/type.rb', line 22

def title_patterns
  @title_patterns
end

Instance Method Details

#render(template) ⇒ Object

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.


58
59
60
# File 'lib/puppet/generate/models/type/type.rb', line 58

def render(template)
  template.result(binding)
end