lua-users home
lua-l archive

[Date Prev][Date Next][Thread Prev][Thread Next] [Date Index] [Thread Index]

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:
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?

On Thu, May 3, 2012 at 1:38 PM, liam mail <> wrote:
On 3 May 2012 18:26, steve donovan <> wrote:
> On Thu, May 3, 2012 at 5:46 PM, Andrew Budd <> wrote:
>>  What I would like to do is add additional methods to those metatables from
>> Lua.
> Totally possible - it's a table, and you can add things to it.
>> mt = getmetatable(io.stdout)
>> mt.read2 = function(self) return self:read(),self:read() end

Unless it is specifically prevented using the "__metatable" key.[1]

[1] pedantic and just for completeness.