docs: add Event to new the doctree
authorDaniel Kolesa <d.kolesa@osg.samsung.com>
Wed, 10 Aug 2016 15:05:16 +0000 (16:05 +0100)
committerDaniel Kolesa <d.kolesa@osg.samsung.com>
Wed, 10 Aug 2016 15:05:16 +0000 (16:05 +0100)
src/scripts/elua/apps/docgen/doctree.lua
src/scripts/elua/apps/docgen/mappings.lua
src/scripts/elua/apps/gendoc.lua

index df49358..91074f4 100644 (file)
@@ -2,6 +2,7 @@ local util = require("util")
 
 local dutil = require("docgen.util")
 local writer = require("docgen.writer")
+local eomap = require("docgen.mappings")
 
 local M = {}
 
@@ -105,4 +106,53 @@ M.Doc = Node:clone {
     end
 }
 
+M.Event = Node:clone {
+    __ctor = function(self, ev)
+        self.event = ev
+        assert(self.event)
+    end,
+
+    name_get = function(self)
+        return self.event:name_get()
+    end,
+
+    type_get = function(self)
+        return self.event:type_get()
+    end,
+
+    doc_get = function(self)
+        return M.Doc(self.event:documentation_get())
+    end,
+
+    scope_get = function(self)
+        return self.event:scope_get()
+    end,
+
+    c_name_get = function(self)
+        return self.event:c_name_get()
+    end,
+
+    is_beta = function(self)
+        return self.event:is_beta()
+    end,
+
+    is_hot = function(self)
+        return self.event:is_hot()
+    end,
+
+    is_restart = function(self)
+        return self.event:is_restart()
+    end,
+
+    nspaces_get = function(self, cl, root)
+        local tbl = eomap.gen_nsp_class(cl)
+        tbl[#tbl + 1] = "event"
+        tbl[#tbl + 1] = self:name_get():lower():gsub(",", "_")
+        if root then
+            tbl[#tbl + 1] = true
+        end
+        return tbl
+    end
+}
+
 return M
index 486f724..4fe3ad4 100644 (file)
@@ -78,16 +78,6 @@ M.gen_nsp_func = function(fn, cl, root)
     return tbl
 end
 
-M.gen_nsp_ev = function(ev, cl, root)
-    local tbl = M.gen_nsp_class(cl)
-    tbl[#tbl + 1] = "event"
-    tbl[#tbl + 1] = ev:name_get():lower():gsub(",", "_")
-    if root then
-        tbl[#tbl + 1] = true
-    end
-    return tbl
-end
-
 M.gen_nsp_ref = function(str, root)
     local decl = eolian.declaration_get_by_name(str)
     if decl then
index b778ab4..6abb55d 100644 (file)
@@ -767,10 +767,11 @@ local build_class = function(cl)
     else
         local nt = {}
         for i, ev in ipairs(evs) do
+            ev = dtree.Event(ev)
             local lbuf = writer.Buffer()
-            lbuf:write_link(eomap.gen_nsp_ev(ev, cl, true), ev:name_get())
+            lbuf:write_link(ev:nspaces_get(cl, true), ev:name_get())
             nt[#nt + 1] = {
-                lbuf:finish(), dtree.Doc(ev:documentation_get()):brief_get()
+                lbuf:finish(), ev:doc_get():brief_get()
             }
             build_event(ev, cl)
         end
@@ -1048,7 +1049,7 @@ build_property = function(fn, cl)
 end
 
 build_event = function(ev, cl)
-    local f = writer.Writer(eomap.gen_nsp_ev(ev, cl))
+    local f = writer.Writer(ev:nspaces_get(cl))
 
     f:write_h(cl:full_name_get() .. ": " .. ev:name_get(), 2)
 
@@ -1088,7 +1089,7 @@ build_event = function(ev, cl)
     f:write_nl()
 
     f:write_h("Description", 3)
-    f:write_raw(dtree.Doc(ev:documentation_get()):full_get(nil, true))
+    f:write_raw(ev:doc_get():full_get(nil, true))
     f:write_nl()
 
     f:finish()