self:gen_ffi(s)
s:write("]]\n\n")
+ local nspaces = self.klass:namespaces_list_get()
+ local ename
+ if #nspaces > 0 then
+ table.remove(nspaces, 1)
+ nspaces[#nspaces + 1] = self.klass:name_get()
+ ename = table.concat(nspaces, "_")
+ else
+ ename = self.klass:name_get()
+ end
+
s:write(("M.%s = eo.class_register(\"%s\", {\n"):format(
- self.klass:name_get(), self.klass:name_get()))
+ ename, self.klass:full_name_get()))
self:gen_children(s)
self:gen_ffi(s)
s:write("]]\n\n")
+ local nspaces = self.klass:namespaces_list_get()
+ local ename
+ if #nspaces > 0 then
+ table.remove(nspaces, 1)
+ nspaces[#nspaces + 1] = self.klass:name_get()
+ ename = table.concat(nspaces, "_")
+ else
+ ename = self.klass:name_get()
+ end
+
s:write(([[
local Parent = eo.class_get("%s")
M.%s = eo.class_register("%s", Parent:clone {
-]]):format(self.parent, self.klass:name_get(), self.klass:name_get()))
+]]):format(self.parent, ename, self.klass:full_name_get()))
self:gen_children(s)
for i, v in ipairs(self.mixins) do
s:write(("\nM.%s:mixin(eo.class_get(\"%s\"))\n")
- :format(self.klass:name_get(), v))
+ :format(ename, v))
end
end,
cutil.init_module(init, shutdown)
-]]):format(self.fname, self.klass:name_get(), modn, self.libname,
+]]):format(self.fname, self.klass:full_name_get(), modn, self.libname,
self.libname))
self:gen_children(s)
const char *eolian_class_file_get(const Eolian_Class *klass);
const char *eolian_class_full_name_get(const Eolian_Class *klass);
const char *eolian_class_name_get(const Eolian_Class *klass);
- const Eina_List *eolian_class_namespaces_list_get(const Eolian_Class klass);
+ const Eina_List *eolian_class_namespaces_list_get(const Eolian_Class *klass);
Eolian_Class_Type eolian_class_type_get(const Eolian_Class *klass);
const Eina_List *eolian_class_names_list_get(void);
const char *eolian_class_description_get(const Eolian_Class *klass);