class TypeDoc

Public Class Methods

new() click to toggle source
   # File lib/puppet/application/describe.rb
56 def initialize
57   @format = Formatter.new(76)
58   @types = {}
59   Puppet::Type.loadall
60   Puppet::Type.eachtype { |type|
61     next if type.name == :component
62     @types[type.name] = type
63   }
64 end

Public Instance Methods

format_attrs(type, attrs) click to toggle source

List details about attributes

    # File lib/puppet/application/describe.rb
122 def format_attrs(type, attrs)
123   docs = {}
124   type.allattrs.each do |name|
125     kind = type.attrtype(name)
126     docs[name] = type.attrclass(name).doc if attrs.include?(kind) && name != :provider
127   end
128 
129   docs.sort { |a,b|
130     a[0].to_s <=> b[0].to_s
131   }.each { |name, doc|
132     print "\n- **#{name}**"
133     if type.key_attributes.include?(name) and name != :name
134       puts " (*namevar*)"
135     else
136       puts ""
137     end
138     puts @format.wrap(doc, :indent => 4, :scrub => true)
139   }
140 end
format_providers(type) click to toggle source
    # File lib/puppet/application/describe.rb
152 def format_providers(type)
153   type.providers.sort_by(&:to_s).each { |prov|
154     puts "\n- **#{prov}**"
155     puts @format.wrap(type.provider(prov).doc, :indent => 4, :scrub => true)
156   }
157 end
format_type(name, opts) click to toggle source
    # File lib/puppet/application/describe.rb
 85 def format_type(name, opts)
 86   name = name.to_sym
 87   unless @types.has_key?(name)
 88     puts "Unknown type #{name}"
 89     return
 90   end
 91   type = @types[name]
 92   puts @format.header(name.to_s, "=")
 93   puts @format.wrap(type.doc, :indent => 0, :scrub => true) + "\n\n"
 94 
 95   puts @format.header("Parameters")
 96   if opts[:parameters]
 97     format_attrs(type, [:property, :param])
 98   else
 99     list_attrs(type, [:property, :param])
100   end
101 
102   if opts[:meta]
103     puts @format.header("Meta Parameters")
104     if opts[:parameters]
105       format_attrs(type, [:meta])
106     else
107       list_attrs(type, [:meta])
108     end
109   end
110 
111   if type.providers.size > 0
112     puts @format.header("Providers")
113     if opts[:providers]
114       format_providers(type)
115     else
116       list_providers(type)
117     end
118   end
119 end
list_attrs(type, attrs) click to toggle source

List the names of attributes

    # File lib/puppet/application/describe.rb
143 def list_attrs(type, attrs)
144   params = []
145   type.allattrs.each do |name|
146     kind = type.attrtype(name)
147     params << name.to_s if attrs.include?(kind) && name != :provider
148   end
149   puts @format.wrap(params.sort.join(", "), :indent => 4)
150 end
list_providers(type) click to toggle source
    # File lib/puppet/application/describe.rb
159 def list_providers(type)
160   list = type.providers.sort_by(&:to_s).join(", ")
161   puts @format.wrap(list, :indent => 4)
162 end
list_types() click to toggle source
   # File lib/puppet/application/describe.rb
66 def list_types
67   puts "These are the types known to puppet:\n"
68   @types.keys.sort_by(&:to_s).each do |name|
69     type = @types[name]
70     s = type.doc.gsub(/\s+/, " ")
71     if s.empty?
72       s = ".. no documentation .."
73     else
74       n = s.index(".") || s.length
75       if n > 45
76         s = s[0, 45] + " ..."
77       else
78         s = s[0, n]
79       end
80     end
81     printf "%-15s - %s\n", name, s
82   end
83 end