nitdoc: migrate to `model_collect`
authorAlexandre Terrasa <alexandre@moz-code.org>
Fri, 22 May 2015 00:26:08 +0000 (20:26 -0400)
committerAlexandre Terrasa <alexandre@moz-code.org>
Fri, 29 May 2015 23:41:46 +0000 (19:41 -0400)
Signed-off-by: Alexandre Terrasa <alexandre@moz-code.org>

src/doc/doc_base.nit
src/doc/doc_phases/doc_concerns.nit
src/doc/doc_phases/doc_html.nit
src/doc/doc_phases/doc_intros_redefs.nit
src/doc/doc_phases/doc_poset.nit
src/doc/doc_phases/doc_structure.nit
src/doc/html_templates/html_model.nit

index 8f0467d..4be6da6 100644 (file)
@@ -16,7 +16,6 @@
 module doc_base
 
 import toolcontext
-import model_utils
 import model_ext
 
 # The model of a Nitdoc documentation.
index cca6346..5c9b2e9 100644 (file)
@@ -16,6 +16,7 @@
 module doc_concerns
 
 import doc_pages
+import model::model_collect
 
 # ConcernsPhase computes the ConcernsTree used for each page layout.
 class ConcernsPhase
@@ -23,7 +24,7 @@ class ConcernsPhase
 
        # Populates the given DocModel.
        redef fun apply do
-               for page in doc.pages.values do page.build_concerns(doc)
+               for page in doc.pages.values do page.build_concerns(self)
        end
 end
 
@@ -32,7 +33,7 @@ redef class DocPage
        # Build the `concerns` tree for this page.
        #
        # Since only `MEntityPage`, this method is a no-op for everything else.
-       private fun build_concerns(doc: DocModel) do end
+       private fun build_concerns(v: ConcernsPhase) do end
 end
 
 redef class MEntityPage
@@ -53,15 +54,16 @@ redef class MGroupPage
        # Refined classes in `mentity` that should appear in this page.
        var redefs = new HashSet[MClass]
 
-       redef fun build_concerns(doc) do
+       redef fun build_concerns(v) do
+               var doc = v.doc
                var mmodules = new HashSet[MModule]
-               for mmodule in mentity.collect_mmodules do
+               for mmodule in mentity.mmodules do
                        if doc.mmodules.has(mmodule) then mmodules.add mmodule
                        # collect mclasses
                        for mclass in mmodule.intro_mclasses do
                                if doc.mclasses.has(mclass) then intros.add mclass
                        end
-                       for mclass in mmodule.redef_mclasses do
+                       for mclass in mmodule.collect_redef_mclasses(v.ctx.min_visibility) do
                                if doc.mclasses.has(mclass) then redefs.add mclass
                        end
                end
@@ -77,7 +79,8 @@ redef class MModulePage
        # MClassDefs located in `mentity` to display in this page.
        var mclassdefs = new HashSet[MClassDef]
 
-       redef fun build_concerns(doc) do
+       redef fun build_concerns(v) do
+               var doc = v.doc
                # extract mclassdefs in mmodule
                for mclassdef in mentity.mclassdefs do
                        if doc.mclassdefs.has(mclassdef) then mclassdefs.add mclassdef
@@ -105,7 +108,8 @@ redef class MClassPage
        # MPropdefs to display in this page.
        var mpropdefs = new HashSet[MPropDef]
 
-       redef fun build_concerns(doc) do
+       redef fun build_concerns(v) do
+               var doc = v.doc
                # collect mclassdefs
                for mclassdef in mentity.mclassdefs do
                        if doc.mclassdefs.has(mclassdef) then mclassdefs.add mclassdef
@@ -131,7 +135,8 @@ redef class MPropertyPage
        # MPropdefs to display in this page.
        var mpropdefs = new HashSet[MPropDef]
 
-       redef fun build_concerns(doc) do
+       redef fun build_concerns(v) do
+               var doc = v.doc
                # collect mpropdefs
                for mpropdef in mentity.mpropdefs do
                        # FIXME diff hack
index 0c843bb..a98d8a7 100644 (file)
@@ -302,8 +302,8 @@ redef class MModulePage
                # TODO filter here?
                super
                var mclasses = new HashSet[MClass]
-               mclasses.add_all mentity.filter_intro_mclasses(v.ctx.min_visibility)
-               mclasses.add_all mentity.filter_redef_mclasses(v.ctx.min_visibility)
+               mclasses.add_all mentity.collect_intro_mclasses(v.ctx.min_visibility)
+               mclasses.add_all mentity.collect_redef_mclasses(v.ctx.min_visibility)
                if mclasses.is_empty then return
                var list = new UnorderedList
                list.css_classes.add "list-unstyled list-labeled"
@@ -410,8 +410,8 @@ redef class MClassPage
 
        private fun mclass_inherited_mprops(v: RenderHTMLPhase, doc: DocModel): Set[MProperty] do
                var res = new HashSet[MProperty]
-               var local = mentity.local_mproperties(v.ctx.min_visibility)
-               for mprop in mentity.inherited_mproperties(doc.mainmodule, v.ctx.min_visibility) do
+               var local = mentity.collect_local_mproperties(v.ctx.min_visibility)
+               for mprop in mentity.collect_inherited_mproperties(v.ctx.min_visibility) do
                        if local.has(mprop) then continue
                        #if mprop isa MMethod and mprop.is_init then continue
                        if mprop.intro.mclassdef.mclass.name == "Object" and
index 5ed6f78..83773f7 100644 (file)
@@ -18,6 +18,7 @@
 module doc_intros_redefs
 
 import doc_structure
+import model::model_collect
 
 # Computes intro / redef mentity list for each DefinitionArticle.
 class IntroRedefListPhase
@@ -56,10 +57,10 @@ redef class DefinitionArticle
        private fun build_mmodule_list(v: IntroRedefListPhase, doc: DocModel, mmodule: MModule) do
                var section = new IntrosRedefsSection(mentity)
                var group = new PanelGroup("List")
-               var intros = mmodule.intro_mclassdefs(v.ctx.min_visibility).to_a
+               var intros = mmodule.collect_intro_mclassdefs(v.ctx.min_visibility).to_a
                doc.mainmodule.linearize_mclassdefs(intros)
                group.add_child new IntrosRedefsListArticle(mentity, "Introduces", intros)
-               var redefs = mmodule.redef_mclassdefs(v.ctx.min_visibility).to_a
+               var redefs = mmodule.collect_redef_mclassdefs(v.ctx.min_visibility).to_a
                doc.mainmodule.linearize_mclassdefs(redefs)
                group.add_child new IntrosRedefsListArticle(mentity, "Redefines", redefs)
                section.add_child group
index 0c610d4..43445cf 100644 (file)
@@ -16,6 +16,7 @@
 module doc_poset
 
 import doc_pages
+import model::model_collect
 
 # This phase computes importation and inheritance POSet for pages.
 class POSetPhase
@@ -82,7 +83,10 @@ redef class MModulePage
                end
                # make poset
                var mmodules = new HashSet[MModule]
-               mmodules.add_all mentity.nested_mmodules
+               var mgroup = mentity.mgroup
+               if mgroup != null and mgroup.default_mmodule == mentity then
+                       mmodules.add_all mgroup.mmodules
+               end
                mmodules.add_all imports
                if clients.length < 10 then mmodules.add_all clients
                mmodules.add mentity
index 5b1f9bc..2e6a862 100644 (file)
@@ -434,7 +434,7 @@ end
 redef class MGroup
        redef var concern_rank is lazy do
                var max = 0
-               for mmodule in collect_mmodules do
+               for mmodule in mmodules do
                        var mmax = mmodule.concern_rank
                        if mmax > max then max = mmax
                end
index bc8ccbe..d722cb7 100644 (file)
@@ -20,6 +20,7 @@ import doc_down
 import html_components
 import html::bootstrap
 import ordered_tree
+import model::model_collect
 
 redef class MEntity
        # URL of this entity’s Nitdoc page.
@@ -330,8 +331,8 @@ redef class MClassDef
        redef fun css_classes do
                var set = new HashSet[String]
                if is_intro then set.add "intro"
-               for m in mclass.intro.modifiers do set.add m.to_cmangle
-               for m in modifiers do set.add m.to_cmangle
+               for m in mclass.intro.collect_modifiers do set.add m.to_cmangle
+               for m in collect_modifiers do set.add m.to_cmangle
                return set.to_a
        end
 end
@@ -421,8 +422,8 @@ redef class MPropDef
        redef fun css_classes do
                var set = new HashSet[String]
                if is_intro then set.add "intro"
-               for m in mproperty.intro.modifiers do set.add m.to_cmangle
-               for m in modifiers do set.add m.to_cmangle
+               for m in mproperty.intro.collect_modifiers do set.add m.to_cmangle
+               for m in collect_modifiers do set.add m.to_cmangle
                return set.to_a
        end
 end