That's how I thought it should work, so if for the sake of an example I have something like this:
int luaopen_array (lua_State *L) {
luaL_newmetatable(L, "LuaBook.array");
lua_pushstring(L, "__index");
lua_pushvalue(L, -2); /* pushes the metatable */
lua_settable(L, -3); /* metatable.__index = metatable */
luaL_openlib(L, NULL, arraylib_m, 0);
luaL_openlib(L, "array", arraylib_f, 0);
return 1;
}
(from online reference here: http://www.lua.org/pil/28.3.html)
how would I add a method on the lua side?
getmetatable(LuaBook.array) throws a attempt to index global 'LuaBook' (a nil value)
what am I missing?