Module:Convert: Difference between revisions

From Random Island Wiki
Jump to navigation Jump to search
>WOSlinker
No edit summary
>WOSlinker
No edit summary
Line 11: Line 11:
     local output;
     local output;
      
      
     val1 = tonumber(args[1]);
     in_val1 = tonumber(args[1]);
     val2 = tonumber(args[3]);
     in_val2 = tonumber(args[3]);
     if val1 == nil then
    disp = args["disp"];
 
 
     if in_val1 == nil then
         error ("Module:Convert value not supplied");
         error ("Module:Convert value not supplied");
         return ""
         return ""
     end
     end


     if val2 == nil then
     if in_val2 == nil then
         -- Single value supplied
         -- Single value supplied
         in_unit  = args[2];
         in_unit  = args[2];
         out_unit = args[3];
         out_unit = args[3];
         if in_unit .. "|" .. out_unit == "°C|°F" then
         if in_unit .. "|" .. out_unit == "°C|°F" then
             out1 = val1 * 9 / 5 + 32;
             out_val1 = in_val1 * 9 / 5 + 32;
         elseif in_unit .. "|" .. out_unit == "°F|°C" then
         elseif in_unit .. "|" .. out_unit == "°F|°C" then
             out1 = (val1 - 32) * 5 / 9;
             out_val1 = (in_val1 - 32) * 5 / 9;
         elseif in_unit .. "|" .. out_unit == "kg|lb" then
         elseif in_unit .. "|" .. out_unit == "kg|lb" then
             out1 = val1 * 2.20462262;
             out_val1 = in_val1 * 2.20462262;
         end
         end
          
          
         output = val1 .. " " .. in_unit .. " (" .. out1 .. " " .. out_unit .. ")"
         if disp == "or" then
            output = in_val1 .. " " .. in_unit .. " or " .. out_val1 .. " " .. out_unit;
        elseif disp == "sqbr" then
            output = in_val1 .. " " .. in_unit .. " <nowiki>[</nowiki>" .. out_val1 .. " " .. out_unit .. "<nowiki>]</nowiki>";
        else
            output = in_val1 .. " " .. in_unit .. " (" .. out_val1 .. " " .. out_unit .. ")";
        end
     else
     else
         -- Two values supplied
         -- Two values supplied

Revision as of 13:29, 2 September 2012

Documentation for this module may be created at Module:Convert/doc

--require "mw.text"
--require "mw.page"

local p = {}

-- This is the top-level function called by {{convert}}.
function p.main(frame, config, args)
    local pframe = frame:getParent();
    local args = pframe.args; -- the arguments passed TO the {{convert}} template, in the wikitext that instantiates the template
    local config = frame.args; -- the arguments passed BY the {{convert}} template, in the wikitext of the template itself
    local output;
    
    in_val1 = tonumber(args[1]);
    in_val2 = tonumber(args[3]);
    disp = args["disp"];


    if in_val1 == nil then
        error ("Module:Convert value not supplied");
        return ""
    end

    if in_val2 == nil then
        -- Single value supplied
        in_unit  = args[2];
        out_unit = args[3];
        if in_unit .. "|" .. out_unit == "°C|°F" then
            out_val1 = in_val1 * 9 / 5 + 32;
        elseif in_unit .. "|" .. out_unit == "°F|°C" then
            out_val1 = (in_val1 - 32) * 5 / 9;
        elseif in_unit .. "|" .. out_unit == "kg|lb" then
            out_val1 = in_val1 * 2.20462262;
        end
        
        if disp == "or" then
            output = in_val1 .. " " .. in_unit .. " or " .. out_val1 .. " " .. out_unit;
        elseif disp == "sqbr" then
            output = in_val1 .. " " .. in_unit .. " <nowiki>[</nowiki>" .. out_val1 .. " " .. out_unit .. "<nowiki>]</nowiki>";
        else
            output = in_val1 .. " " .. in_unit .. " (" .. out_val1 .. " " .. out_unit .. ")";
        end
    else
        -- Two values supplied
        range    = args[2];
        in_unit  = args[4];
        out_unit = args[5];
    end
    
    --error ("Module:Convert is not implemented");
    return output    
end

return p