Module:Utils: Difference between revisions

From Eco - English Wiki
[unchecked revision][unchecked revision]
No edit summary
No edit summary
Line 28: Line 28:
   end
   end
end
end
      
 
-- mw.LoadData prevents #table from working correctly
function p.tableLen(tbl)
  local count = 0
     for _, v in ipairs(t) do
      if v == nil then
        return count
      end
      count = count + 1
    end
  return count
end
 
return p
return p

Revision as of 13:29, 27 February 2021

This module provides utility functions used from other modules.

Usage

Add the following line of code at the top of your file.

local Utils = require("Module:Utils")

-- You may then call functions from this module in your script. For example:
local tableLength = Utils.tableLen(myTable)

local p = {}

-- Trims and parses the args into a table, then returns the table
function p.normaliseArgs(frame)
  local origArgs = frame:getParent().args
  local args = {}
  
  for k, v in pairs(origArgs) do
    v = mw.text.trim(tostring(v))
    if v ~= '' then
      args[k] = v
    end
  end
  
  return args
end

function p.checkImage(name, too_expensive)
  local icon = name:gsub('%s+', '') .. '_Icon.png'
  if too_expensive then
    return icon
  end

  if mw.title.makeTitle('File', icon).file.exists then
    return icon
  else
    return 'NoImage.png'
  end
end

-- mw.LoadData prevents #table from working correctly
function p.tableLen(tbl)
  local count = 0
    for _, v in ipairs(t) do
      if v == nil then
        return count
      end
      count = count + 1
    end
  return count
end

return p