# Dump of Nit model into hypertext human-readable format.
module model_hyperdoc
-import model
import metrics_base
-import phase
-import frontend
redef class ToolContext
- var model_hyperdoc_phase = new ModelHyperdocPhase(self, null)
+ var model_hyperdoc_phase: Phase = new ModelHyperdocPhase(self, null)
end
private class ModelHyperdocPhase
super Phase
- redef fun process_mainmodule(mainmodule)
+ redef fun process_mainmodule(mainmodule, given_mmodules)
do
if not toolcontext.opt_generate_hyperdoc.value and not toolcontext.opt_all.value then return
generate_model_hyperdoc(toolcontext, toolcontext.modelbuilder.model)
buf.append("<html>\n<body>\n")
buf.append("<h1>Model</h1>\n")
- buf.append("<h2>Projects</h2>\n")
- for mproject in model.mprojects do
- buf.append("<h3 id='project-{mproject}'>Project {mproject}</h3>\n")
+ buf.append("<h2>Packages</h2>\n")
+ for mpackage in model.mpackages do
+ buf.append("<h3 id='package-{mpackage}'>Package {mpackage}</h3>\n")
buf.append("<dl>\n")
buf.append("<dt>groups</dt>\n")
- for x in mproject.mgroups do
+ for x in mpackage.mgroups do
buf.append("<dd>{linkto(x)}</dd>\n")
end
buf.append("</dl>\n")
end
buf.append("<h2>Groups</h2>\n")
- for mproject in model.mprojects do
- for mgroup in mproject.mgroups do
+ for mpackage in model.mpackages do
+ for mgroup in mpackage.mgroups do
buf.append("<h3 id='group-{mgroup}'>Group {mgroup}</h3>\n")
buf.append("<dl>\n")
- buf.append("<dt>project</dt>\n")
- buf.append("<dd>{linkto(mproject)}</dd>\n")
+ buf.append("<dt>package</dt>\n")
+ buf.append("<dd>{linkto(mpackage)}</dd>\n")
buf.append("<dt>filepath</dt>\n")
- buf.append("<dd>{mgroup.filepath}</dd>\n")
+ buf.append("<dd>{mgroup.filepath.to_s}</dd>\n")
var p = mgroup.parent
if p != null then
buf.append("<dt>parent group</dt>\n")
end
end
buf.append("</body></html>\n")
- var f = new OFStream.open(toolcontext.output_dir.join_path("model.html"))
+ var f = new FileWriter.open(toolcontext.output_dir.join_path("model.html"))
f.write(buf.to_s)
f.close
end
private fun linkto(o: Object): String
do
- if o isa MProject then
- return "<a href='#project-{o}'>{o}</a>"
+ if o isa MPackage then
+ return "<a href='#package-{o}'>{o}</a>"
else if o isa MGroup then
return "<a href='#group-{o}'>{o}</a>"
else if o isa MModule then