Module:TableBuilder

De Lagny-sur-Marne Wiki
Version datée du 2 septembre 2013 à 12:12 par 0x010D (discussion | contributions) (new : la table est crée avec les éléments transmis à la fonction)
Aller à la navigation Aller à la recherche

--Module appliquant aux fonctions de la librairie Table une inteface fluide.

local meta = {}

meta.insert = function(t, ...)

   table.insert(t, ...)
   return t

end

meta.remove = function(t, ...)

   table.remove(t, ...)
   return t

end

meta.sort = function(t, ...)

   table.sort(t, ...)
   return t

end

meta.maxn = function(t)

   return table.maxn(t)

end

meta.concat = function(t, ...)

   return table.concat(t, ...)

end

meta.__index = function(t, key)

   local metafunc = meta[key]
   if type(metafunc) == 'function' then
       return (function(...) return metafunc(t, ...) end)
   end

end

local TableBuilder = {

   new = function( ... )
       local t = { ... }
       setmetatable( t, meta )
       return t
   end

}

return TableBuilder