From 8c79a428e935166ffd41dcb1fcc42eaab13b94c0 Mon Sep 17 00:00:00 2001 From: Alexandre Terrasa Date: Mon, 19 Oct 2015 19:01:20 -0400 Subject: [PATCH] src/doc: move the testing option to its own doc_phase. Signed-off-by: Alexandre Terrasa --- src/doc/doc_phases/doc_phases.nit | 1 + src/doc/doc_phases/doc_test.nit | 59 +++++++++++++++++++++++++++++++++++++ src/nitdoc.nit | 33 ++------------------- 3 files changed, 63 insertions(+), 30 deletions(-) create mode 100644 src/doc/doc_phases/doc_test.nit diff --git a/src/doc/doc_phases/doc_phases.nit b/src/doc/doc_phases/doc_phases.nit index fefd1ac..24969e4 100644 --- a/src/doc/doc_phases/doc_phases.nit +++ b/src/doc/doc_phases/doc_phases.nit @@ -19,3 +19,4 @@ module doc_phases import doc_html import doc_indexing +import doc_test diff --git a/src/doc/doc_phases/doc_test.nit b/src/doc/doc_phases/doc_test.nit new file mode 100644 index 0000000..ddb5eb7 --- /dev/null +++ b/src/doc/doc_phases/doc_test.nit @@ -0,0 +1,59 @@ +# This file is part of NIT ( http://www.nitlanguage.org ). +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Print the generated DocModel in stdout. +# +# Mainly used for tests. +module doc_test + +import doc_structure +import counter + +redef class ToolContext + + # File pattern used to link documentation to source code. + var opt_test = new OptionBool("print test data", "--test") + + redef init do + super + option_context.add_option(opt_test) + end +end + +# Display the DocModel in stdout. +class DocTestPhase + super DocPhase + + redef fun apply do + if not ctx.opt_test.value then return + # 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 diff --git a/src/nitdoc.nit b/src/nitdoc.nit index 1e6059b..2591863 100644 --- a/src/nitdoc.nit +++ b/src/nitdoc.nit @@ -19,19 +19,12 @@ module nitdoc 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") - - redef init do - super - option_context.add_option(opt_test) - end + init do super # to fix ambiguous linearization end # Nitdoc phase explores the model and generate pages for each mentities found @@ -53,33 +46,13 @@ private class Nitdoc 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 -- 1.7.9.5