summaryrefslogtreecommitdiffstats
path: root/lib/puppet/reference/metaparameter.rb
blob: 6a319f1c28b4247af40b688f7efd39ae7be539cd (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
metaparameter = Puppet::Util::Reference.newreference :metaparameter, :doc => "All Puppet metaparameters and all their details" do
  types = {}
  Puppet::Type.loadall

  Puppet::Type.eachtype { |type|
    next if type.name == :puppet
    next if type.name == :component
    types[type.name] = type
  }

  str = %{
    Metaparameters
    --------------
    Metaparameters are parameters that work with any resource type; they are part of the
    Puppet framework itself rather than being part of the implementation of any
    given instance.  Thus, any defined metaparameter can be used with any instance
    in your manifest, including defined components.

    Available Metaparameters
    ++++++++++++++++++++++++
    }
  begin
    params = []
    Puppet::Type.eachmetaparam { |param|
      params << param
    }

    params.sort { |a,b|
      a.to_s <=> b.to_s
    }.each { |param|
      str += paramwrap(param.to_s, scrub(Puppet::Type.metaparamdoc(param)), :level => 4)
      #puts "<dt>#{param}</dt>"
      #puts tab(1) + Puppet::Type.metaparamdoc(param).scrub.indent($tab)gsub(/\n\s*/,' ')
      #puts "<dd>"
      #puts indent(scrub(Puppet::Type.metaparamdoc(param)), $tab)
      #puts scrub(Puppet::Type.metaparamdoc(param))
      #puts "</dd>"

      #puts ""
    }
  rescue => detail
    puts detail.backtrace
    puts "incorrect metaparams: #{detail}"
    exit(1)
  end

  str
end