Module:Template test case: Difference between revisions

    (add nowiki exports and finish the NowikiInvocation class)
    (move arg-trimming code to the TableInvocation class)
    Line 138: Line 138:
    local optionKey = type(k) == 'string' and k:match('^_(.*)$')
    local optionKey = type(k) == 'string' and k:match('^_(.*)$')
    if optionKey then
    if optionKey then
    rawOptions[optionKey] = v
    if type(v) == 'string' then
    v = mw.text.trim(v)
    end
    if v ~= '' then
    rawOptions[optionKey] = v
    end
    else
    else
    invokeArgs[k] = v
    invokeArgs[k] = v
    Line 209: Line 214:
    return require('Module:Arguments').getArgs(frame, {
    return require('Module:Arguments').getArgs(frame, {
    wrappers = wrappers,
    wrappers = wrappers,
    valueFunc = function (k, v)
    trim = false,
    if type(k) == 'string' and k:find('^_') then
    removeBlanks = false
    v = mw.text.trim(v)
    if v ~= '' then
    return v
    end
    else
    return v
    end
    end
    })
    })
    end
    end
    Line 230: Line 227:


    function p.table(frame)
    function p.table(frame)
    return p._table(getTableArgs(frame, 'Template:Test case'))
    return p._table(getTableArgs(frame, 'Template:Test case from arguments'))
    end
    end


    Line 254: Line 251:
    function p.nowiki(frame)
    function p.nowiki(frame)
    local args = require('Module:Arguments').getArgs(frame, {
    local args = require('Module:Arguments').getArgs(frame, {
    wrappers = 'Template:Test case'
    wrappers = 'Template:Test case from invocation'
    })
    })
    return p._nowiki(args)
    return p._nowiki(args)