<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://www.seulengroupe.com/index.php?action=history&amp;feed=atom&amp;title=Module%3AArgs</id>
	<title>Module:Args - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://www.seulengroupe.com/index.php?action=history&amp;feed=atom&amp;title=Module%3AArgs"/>
	<link rel="alternate" type="text/html" href="https://www.seulengroupe.com/index.php?title=Module:Args&amp;action=history"/>
	<updated>2026-04-18T18:47:00Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.44.0</generator>
	<entry>
		<id>https://www.seulengroupe.com/index.php?title=Module:Args&amp;diff=649&amp;oldid=prev</id>
		<title>pzwiki&gt;Vaileasys: Fix getFlags returning lower string</title>
		<link rel="alternate" type="text/html" href="https://www.seulengroupe.com/index.php?title=Module:Args&amp;diff=649&amp;oldid=prev"/>
		<updated>2025-04-06T06:05:59Z</updated>

		<summary type="html">&lt;p&gt;Fix getFlags returning lower string&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;-- Provides functions to cleanly retrieve and process frame arguments, with optional trimming, blank-checking and boolean parsing.&lt;br /&gt;
&lt;br /&gt;
local arguments = {}&lt;br /&gt;
&lt;br /&gt;
-- Adapted variant from: https://en.wikipedia.org/wiki/Module:Yesno&lt;br /&gt;
-- Cast values to boolean/number where appropriate&lt;br /&gt;
function arguments.getFlag(val)&lt;br /&gt;
    if val == nil or type(val) == &amp;#039;boolean&amp;#039; then&lt;br /&gt;
        return val&lt;br /&gt;
    elseif type(val) == &amp;#039;string&amp;#039; then&lt;br /&gt;
        local v = val:lower()&lt;br /&gt;
&lt;br /&gt;
        if v == &amp;#039;yes&amp;#039;&lt;br /&gt;
            or v == &amp;#039;y&amp;#039;&lt;br /&gt;
            or v == &amp;#039;true&amp;#039;&lt;br /&gt;
            or v == &amp;#039;t&amp;#039;&lt;br /&gt;
            or v == &amp;#039;on&amp;#039;&lt;br /&gt;
        then&lt;br /&gt;
            return true&lt;br /&gt;
&lt;br /&gt;
        elseif v == &amp;#039;no&amp;#039;&lt;br /&gt;
            or v == &amp;#039;n&amp;#039;&lt;br /&gt;
            or v == &amp;#039;false&amp;#039;&lt;br /&gt;
            or v == &amp;#039;f&amp;#039;&lt;br /&gt;
            or v == &amp;#039;off&amp;#039;&lt;br /&gt;
        then&lt;br /&gt;
            return false&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    local num = tonumber(val)&lt;br /&gt;
    return num or val&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- Get an argument with a fallback default&lt;br /&gt;
function arguments.get(val, default)&lt;br /&gt;
    if val == nil or val == &amp;#039;&amp;#039; then&lt;br /&gt;
        return default&lt;br /&gt;
    end&lt;br /&gt;
    val = mw.text.trim(val)&lt;br /&gt;
    if val == &amp;#039;&amp;#039; then&lt;br /&gt;
        return default&lt;br /&gt;
    end&lt;br /&gt;
    return arguments.getFlag(val)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- Adapted variant from: https://terraria.wiki.gg/wiki/Module:Args&lt;br /&gt;
-- Parses frame args with option:&lt;br /&gt;
--   wrappers: list of wrapper templates&lt;br /&gt;
--   trim: bool, trims whitespace (default true)&lt;br /&gt;
--   flag: bool, casts values to boolean/number (default true)&lt;br /&gt;
--   keep_blank: retains blank string values (default false)&lt;br /&gt;
function arguments.getArgs(frame, option)&lt;br /&gt;
    frame = frame or mw.getCurrentFrame()&lt;br /&gt;
    option = option or {}&lt;br /&gt;
    local trim = option[&amp;#039;trim&amp;#039;] ~= false&lt;br /&gt;
    local flag = option[&amp;#039;flag&amp;#039;] ~= false&lt;br /&gt;
    local keep_blank = option[&amp;#039;keep_blank&amp;#039;] or false&lt;br /&gt;
&lt;br /&gt;
    local args&lt;br /&gt;
    if not frame.getParent then&lt;br /&gt;
        args = frame.args or {} -- fallback for testing&lt;br /&gt;
    else&lt;br /&gt;
        args = frame:getParent().args -- invoked by template&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    if option.wrappers then&lt;br /&gt;
        for _, wrapper in ipairs(option.wrappers) do&lt;br /&gt;
            if frame:getTitle() == wrapper then&lt;br /&gt;
                args = frame.args&lt;br /&gt;
                break&lt;br /&gt;
            end&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    local result = {}&lt;br /&gt;
&lt;br /&gt;
    for k, v in pairs(args) do&lt;br /&gt;
        if trim then&lt;br /&gt;
            v = mw.text.trim(v)&lt;br /&gt;
        end&lt;br /&gt;
        if flag then&lt;br /&gt;
            v = arguments.getFlag(v)&lt;br /&gt;
        end&lt;br /&gt;
        if keep_blank or v ~= &amp;#039;&amp;#039; then&lt;br /&gt;
            result[k] = v&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    return result&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return arguments&lt;/div&gt;</summary>
		<author><name>pzwiki&gt;Vaileasys</name></author>
	</entry>
</feed>