Module:String: Difference between revisions

    From Nonbinary Wiki
    (as copied directly from en:Module:String)
    (Reverting until it can be figured out why this update broke Template:Strlen and Template:git)
    Line 1: Line 1:
    --[[ 
    local p = {}


    This module is intended to provide access to basic string functions.
    function p.length( frame )
        local arg1 = frame.args[1]
        return string.len( arg1 )
    end   


    Most of the functions provided here can be invoked with named parameters,
    function p.sub( frame )
    unnamed parameters, or a mixture.  If named parameters are used, Mediawiki will
         local arg1 = frame.args[1]
    automatically remove any leading or trailing whitespace from the parameter. 
         local arg2 = tonumber( frame.args[2] )
    Depending on the intended use, it may be advantageous to either preserve or
         local arg3 = tonumber( frame.args[3] )
    remove such whitespace.
         if arg2 and arg3 then
     
             local first = arg2 + 1
    Global options
             local last  = arg2 + arg3
        ignore_errors: If set to 'true' or 1, any error condition will result in
             return string.sub( arg1, first, last )
            an empty string being returned rather than an error message. 
         else
           
             return ""
        error_category: If an error occurs, specifies the name of a category to
            include with the error message.  The default category is 
            [Category:Errors reported by Module String].
           
        no_category: If set to 'true' or 1, no category will be added if an error
            is generated.
           
    Unit tests for this module are available at Module:String/tests.
    ]]
     
    local str = {}
     
    --[[
    len
     
    This function returns the length of the target string.
     
    Usage:
    {{#invoke:String|len|target_string|}}
    OR
    {{#invoke:String|len|s=target_string}}
     
    Parameters
        s: The string whose length to report
     
    If invoked using named parameters, Mediawiki will automatically remove any leading or
    trailing whitespace from the target string. 
    ]]
    function str.len( frame )
         local new_args = str._getParameters( frame.args, {'s'} );
        local s = new_args['s'] or '';
        return mw.ustring.len( s )
    end
     
    --[[
    sub
     
    This function returns a substring of the target string at specified indices.
     
    Usage:
    {{#invoke:String|sub|target_string|start_index|end_index}}
    OR
    {{#invoke:String|sub|s=target_string|i=start_index|j=end_index}}
     
    Parameters
        s: The string to return a subset of
        i: The fist index of the substring to return, defaults to 1.
        j: The last index of the string to return, defaults to the last character.
       
    The first character of the string is assigned an index of 1.  If either i or j
    is a negative value, it is interpreted the same as selecting a character by
    counting from the end of the string.  Hence, a value of -1 is the same as
    selecting the last character of the string.
     
    If the requested indices are out of range for the given string, an error is
    reported.
    ]]
    function str.sub( frame )