Module:Arguments

From Minetest Wiki
Revision as of 18:03, 7 May 2017 by MrIbby (talk | contribs) (Fixed makeInvokeFunc)
Jump to navigation Jump to search

local p = {}

function p.getArgs(frame, options)

   options = options or {}
   local metatable = {}
   function metatable:__index(key)
       local arg = frame.args[key]
       if arg == nil and options.inherited then
           local parent = frame:getParent()
           arg = parent and parent.args[key] or nil
       end
       return arg
   end
   return setmetatable({}, metatable)

end

function p.makeInvokeFunc(func, options)

   return function(frame)
       local args = p.getArgs(frame, options)
       return func(args)
   end

end

return p