class TypeDoc

Public Class Methods

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

Public Instance Methods

format_attrs(type, attrs) click to toggle source

List details about attributes

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

List the names of attributes

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