catalog: Update to use the package graph
[nit.git] / src / catalog / catalog.nit
index dd891ac..fa957e1 100644 (file)
@@ -165,24 +165,6 @@ class Person
                return email.md5.to_lower
        end
 
-       # Return a full-featured link to a person
-       fun to_html: String
-       do
-               var res = ""
-               var e = name.html_escape
-               var page = self.page
-               if page != null then
-                       res += "<a href=\"{page.html_escape}\">"
-               end
-               var gravatar = self.gravatar
-               if gravatar != null then
-                       res += "<img src=\"https://secure.gravatar.com/avatar/{gravatar}?size=20&amp;default=retro\">&nbsp;"
-               end
-               res += e
-               if page != null then res += "</a>"
-               return res
-       end
-
        # The standard representation of a person.
        #
        # ~~~
@@ -284,7 +266,7 @@ class Catalog
        var contrib2proj = new MultiHashMap[Person, MPackage]
 
        # Dependency between packages
-       var deps = new POSet[MPackage]
+       fun deps: HashDigraph[MPackage] do return modelbuilder.model.mpackage_importation_graph
 
        # Number of modules by package
        var mmodules = new Counter[MPackage]
@@ -400,11 +382,11 @@ class Catalog
                        cat2proj[cat].add mpackage
                        score += tags.length.score
                end
-               if deps.has(mpackage) then
-                       score += deps[mpackage].greaters.length.score
-                       score += deps[mpackage].direct_greaters.length.score
-                       score += deps[mpackage].smallers.length.score
-                       score += deps[mpackage].direct_smallers.length.score
+               if deps.has_vertex(mpackage) then
+                       score += deps.predecessors(mpackage).length.score
+                       score += deps.get_all_predecessors(mpackage).length.score
+                       score += deps.successors(mpackage).length.score
+                       score += deps.get_all_successors(mpackage).length.score
                end
 
                var contributors = mpackage.metadata.contributors
@@ -586,6 +568,20 @@ class CatalogStats
 
        # Number of line of codes
        var loc = 0
+
+       # Return the stats as a Map associating each stat key to its value
+       fun to_map: Map[String, Int] do
+               var map = new HashMap[String, Int]
+               map["packages"] = packages
+               map["maintainers"] = maintainers
+               map["contributors"] = contributors
+               map["tags"] = tags
+               map["modules"] = modules
+               map["classes"] = classes
+               map["methods"] = methods
+               map["loc"] = loc
+               return map
+       end
 end
 
 # MPackage statistics for the catalog