Module:Join

From RabastorWiki
Jump to navigation Jump to search

--[[ Join

Joins all non null arguments together, the first argument is the separator

    one  sep  three  sep  two 

/*

  • /
   if args[1] == nil then
       local pFrame = frame:getParent();
       args = pFrame.args;
       for k,v in pairs( frame.args ) do
           args[k] = v;
       end
   end

]]

local join = {}

function join.join(frame)

   local res=;
   local args = {};
   for k,v in pairs( frame.args ) do
     if v ~= nil and v ~=  then
        table.insert(args,v)
        --res = res .. '[' .. k .. ']=' ..v
     end
   end
   local sep = args[1];
   res = table.concat( args, sep, 2, j );
   return res

end

function join.join2(frame)

   local res=;
   local args = {};
   for k,v in pairs( frame.args ) do
     if v ~= nil and v ~=  then
        table.insert(args,v)
        --res = res .. '[' .. k .. ']=' ..v
     end
   end
   local sep = args[1];
   local sep2 = args[2];
   if #args < 3 then
     res = 
   elseif #args == 3 then
     res = args[3]
   elseif #args == 4 then
     res = args[3] .. sep2 .. args[4]
   else
     res = table.concat( args, sep, 3, #args-1 );
     res = res .. sep2 .. args[#args];
   end
   return res

end

function join.concat(frame)

   local res=;
   for k,v in pairs( frame.args ) do
        res = res .. v
   end
   return res

end

function join.iconcat(frame)

   local res=;
   for k,v in ipairs( frame.args ) do
        res = res .. v
   end
   return res

end

return join