import modelbuilder
import doc
-import counter
redef class ToolContext
# Nitdoc generation phase.
var docphase: Phase = new Nitdoc(self, null)
- # File pattern used to link documentation to source code.
- var opt_test = new OptionBool("print test data", "--test")
+ # Do not generate documentation for attributes.
+ var opt_no_attributes = new OptionBool("Ignore the attributes", "--no-attributes")
+
+ # Do not generate documentation for private properties.
+ var opt_private = new OptionBool("Also generate private API", "--private")
redef init do
super
- option_context.add_option(opt_test)
+ option_context.add_option(opt_no_attributes, opt_private)
end
end
redef fun process_mainmodule(mainmodule, mmodules)
do
var doc = new DocModel(mainmodule.model, mainmodule)
+ if not toolcontext.opt_private.value then doc.min_visibility = protected_visibility
+ if not toolcontext.opt_no_attributes.value then doc.include_attribute = false
var phases = [
- new ExtractionPhase(toolcontext, doc),
new IndexingPhase(toolcontext, doc),
new MakePagePhase(toolcontext, doc),
new POSetPhase(toolcontext, doc),
new LinListPhase(toolcontext, doc),
new GraphPhase(toolcontext, doc),
new ReadmePhase(toolcontext, doc),
- new RenderHTMLPhase(toolcontext, doc): DocPhase]
+ new RenderHTMLPhase(toolcontext, doc),
+ new DocTestPhase(toolcontext, doc): DocPhase]
for phase in phases do
toolcontext.info("# {phase.class_name}", 1)
phase.apply
end
-
- if toolcontext.opt_test.value then
- # Pages metrics
- var page_counter = new Counter[String]
- var pages = doc.pages.keys.to_a
- default_comparator.sort(pages)
- for title in pages do
- var page = doc.pages[title]
- page_counter.inc page.class_name
- print page.pretty_print.write_to_string
- end
- print "Generated {doc.pages.length} pages"
- page_counter.print_elements(100)
- # Model metrics
- var model_counter = new Counter[String]
- for mentity in doc.mentities do
- model_counter.inc mentity.class_name
- end
- print "Found {doc.mentities.length} mentities"
- model_counter.print_elements(100)
- end
end
end