Module: Puppet::Util::RDoc
- Defined in:
- lib/puppet/util/rdoc.rb
Class Method Summary collapse
-
.manifestdoc(files) ⇒ Object
launch an output to console manifest doc.
-
.output(file, ast) ⇒ Object
Ouputs to the console the documentation of a manifest.
- .output_astnode_doc(ast) ⇒ Object
- .output_resource_doc(code) ⇒ Object
-
.rdoc(outputdir, files, charset = nil) ⇒ Object
launch a rdoc documenation process with the files/dir passed in
files
.
Class Method Details
.manifestdoc(files) ⇒ Object
launch an output to console manifest doc
54 55 56 57 58 59 60 61 62 |
# File 'lib/puppet/util/rdoc.rb', line 54 def manifestdoc(files) Puppet[:ignoreimport] = true files.select { |f| FileTest.file?(f) }.each do |f| parser = Puppet::Parser::Parser.new(Puppet.lookup(:current_environment)) parser.file = f ast = parser.parse output(f, ast) end end |
.output(file, ast) ⇒ Object
Ouputs to the console the documentation of a manifest
66 67 68 69 70 71 72 73 74 75 |
# File 'lib/puppet/util/rdoc.rb', line 66 def output(file, ast) astobj = [] ast.instantiate('').each do |resource_type| astobj << resource_type if resource_type.file == file end astobj.sort! {|a,b| a.line <=> b.line }.each do |k| output_astnode_doc(k) end end |
.output_astnode_doc(ast) ⇒ Object
77 78 79 80 81 82 83 84 85 |
# File 'lib/puppet/util/rdoc.rb', line 77 def output_astnode_doc(ast) puts ast.doc if !ast.doc.nil? and !ast.doc.empty? if Puppet.settings[:document_all] # scan each underlying resources to produce documentation code = ast.code.children if ast.code.is_a?(Puppet::Parser::AST::ASTArray) code ||= ast.code output_resource_doc(code) unless code.nil? end end |
.output_resource_doc(code) ⇒ Object
87 88 89 90 91 92 93 94 95 |
# File 'lib/puppet/util/rdoc.rb', line 87 def output_resource_doc(code) code.sort { |a,b| a.line <=> b.line }.each do |stmt| output_resource_doc(stmt.children) if stmt.is_a?(Puppet::Parser::AST::ASTArray) if stmt.is_a?(Puppet::Parser::AST::Resource) puts stmt.doc if !stmt.doc.nil? and !stmt.doc.empty? end end end |
.rdoc(outputdir, files, charset = nil) ⇒ Object
launch a rdoc documenation process with the files/dir passed in files
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 49 50 51 |
# File 'lib/puppet/util/rdoc.rb', line 7 def rdoc(outputdir, files, charset = nil) Puppet[:ignoreimport] = true # then rdoc require 'rdoc/rdoc' require 'rdoc/options' # load our parser require 'puppet/util/rdoc/parser' r = RDoc::RDoc.new if Puppet.features.rdoc1? RDoc::RDoc::GENERATORS["puppet"] = RDoc::RDoc::Generator.new( "puppet/util/rdoc/generators/puppet_generator.rb", :PuppetGenerator, "puppet" ) end # specify our own format & where to output = [ "--fmt", "puppet", "--quiet", "--exclude", "/modules/[^/]*/spec/.*$", "--exclude", "/modules/[^/]*/files/.*$", "--exclude", "/modules/[^/]*/tests/.*$", "--exclude", "/modules/[^/]*/templates/.*$", "--op", outputdir ] if !Puppet.features.rdoc1? || ::Options::OptionList..any? { |o| o[0] == "--force-update" } # Options is a root object in the rdoc1 namespace... << "--force-update" end += [ "--charset", charset] if charset # Rdoc root default is Dir.pwd, but the win32-dir gem monkey patchs Dir.pwd # replacing Ruby's normal / with \. When RDoc generates relative paths it # uses relative_path_from that will generate errors when the slashes don't # properly match. This is a workaround for that issue. if Puppet.features.microsoft_windows? && RDoc::VERSION !~ /^[0-3]\./ += [ "--root", Dir.pwd.gsub(/\\/, '/')] end += files # launch the documentation process r.document() end |