Difference between pages "Module:Util" and "Card Gallery:Time Thief Perpetua"

From Yugipedia
(Difference between pages)
Jump to: navigation, search
m (Update link function to remove the dab of the pagename, to use as a label, instead of removing all parenthesized text.)
 
(Restoring revision 4948984 by User:Cardsknower on 2022-04-17 08:13:45.)
 
Line 1: Line 1:
-- <pre>
+
{{Navigation}}
-- @name Util
 
-- @description Holds commonly used simple functions.
 
-- @author [[User:Becasita]]
 
-- @contact [[User talk:Becasita]]
 
  
-------------------
+
{{Card gallery|region=EN|
-- Export variable:
+
IGAS-EN094; Ignition Assault; SR; 1E
-------------------
+
IGAS-EN094; Ignition Assault; StR; 1E
-- @export
+
IGAS-EN094; Ignition Assault; SR; UE
local U = {};
+
GFTP-EN065; Ghosts From the Past (set); UR; 1E
 +
}}
  
-------------
+
{{Card gallery|region=FR|
-- Functions:
+
IGAS-FR094; Ignition Assault; SR; 1E
-------------
+
IGAS-FR094; Ignition Assault; StR; 1E
-- mw functions:
+
IGAS-FR094; Ignition Assault; SR; UE
local mwTextSplit = mw.text.split;
+
GFTP-FR065; Ghosts From the Past (set); UR; 1E
local mwTextTrim = mw.text.trim;
+
}}
  
-- @name bold
+
{{Card gallery|region=DE|
-- @description Renders bold wikitext markup.
+
IGAS-DE094; Ignition Assault; SR; 1E
function U.bold( s )
+
IGAS-DE094; Ignition Assault; StR; 1E
return ("'''%s'''"):format( s )
+
IGAS-DE094; Ignition Assault; SR; UE
end
+
GFTP-DE065; Ghosts From the Past (set); UR; 1E
 +
}}
  
-- @name italic
+
{{Card gallery|region=IT|
-- @description Renders italics wikitext markup.
+
IGAS-IT094; Ignition Assault; SR; 1E
function U.italic( s )
+
IGAS-IT094; Ignition Assault; StR; 1E
return ("''%s''"):format( s )
+
IGAS-IT094; Ignition Assault; SR; UE
end
+
GFTP-IT065; Ghosts From the Past (set); UR; 1E
 +
}}
  
-- @name italicButDab
+
{{Card gallery|region=PT|
-- @description Renders italics wikitext markup, except for the dab.
+
IGAS-PT094; Ignition Assault; SR; 1E
-- Also normalizes the space between the dab and the rest.
+
IGAS-PT094; Ignition Assault; StR; 1E
function U.italicNoDab( s )
+
IGAS-PT094; Ignition Assault; SR; UE
local dab = U.getDab( s );
+
GFTP-PT065; Ghosts From the Past (set); UR; 1E
local noDab = U.removeDab( s )
+
}}
return table.concat( { ("''%s''"):format( noDab ), dab }, ' ' );
 
end
 
  
-- @name trim
+
{{Card gallery|region=SP|
-- @description Trims white space from front and tail of string. Returns nil if only whitespace.
+
IGAS-SP094; Ignition Assault; SR; 1E
-- @see [[mw:Extension:Scribunto/Lua reference manual#mw.text.trim]]
+
IGAS-SP094; Ignition Assault; StR; 1E
function U.trim( s )
+
IGAS-SP094; Ignition Assault; SR; UE
if s and not s:match( '^%s*$' ) then
+
GFTP-SP065; Ghosts From the Past (set); UR; 1E
return mwTextTrim( s );
+
}}
end
 
end
 
  
-- @name count
+
{{Card gallery|region=JP|
-- @description Counts the number of elements in a table.
+
EP19-JP044; Extra Pack 2019 :: OP
function U.count( t )
+
EP19-JP044; Extra Pack 2019; ScR
local counter = 0;
+
SLT1-JP026; Selection 10; C
for key, value in pairs( t ) do
+
}}
counter = counter + 1;
 
end
 
return counter;
 
end
 
  
-- @name link
+
{{Card gallery|region=SC|
-- @description Creates a wikitext link.
+
MGP4-SC100; Mega Pack 04; UR
function U.link( page, label )
+
}}
return ('[[%s|%s]]'):format(
 
page:gsub( '#', '' ),
 
label or U.removeDab( page )
 
);
 
end
 
  
-- @name getDab
+
{{Card gallery|region=KR|
-- @description Gets the dab text of a title, if it has dab.
+
EP19-KR044; Extra Pack 2019; ScR; UE
function U.getDab( title )
+
SLT1-KR026; Selection 10; C; UE
return title:match( '%(([^%(]*)%)%s*$' ) or '';
+
}}
end
 
  
-- @name removeDab
+
{{Card gallery|region=JP|type=Video game|
-- @description Removes the dab text of a title.
+
LOD2 :: artwork
function U.removeDab( title )
+
}}
return title:gsub( '%s*%(([^%(]*)%)%s*$', '' );
 
end
 
  
-- @name isSomething
+
{{Card gallery|region=EN|type=Video game|
-- @description Meta-function for type checkers.
+
MADU :: artwork
local function isSomething( toCompare, compareTo )
+
}}
return type( toCompare ) == type( compareTo );
 
end
 
  
-- @name isBoolean
+
{{Card gallery|region=JP|type=Other|
function U.isBoolean( v )
+
TimeThiefPerpetua-OW.png // twitter::1169550743679823874
return isSomething( v, true );
+
}}
end
 
 
 
-- @name isFunction
 
function U.isFunction( v )
 
return isSomething( v, function() end );
 
end
 
 
 
-- @name isNil
 
function U.isNil( v )
 
return isSomething( v, nil );
 
end
 
 
 
-- @name isNumber
 
function U.isNumber( v )
 
return isSomething( v, 1 );
 
end
 
 
 
-- @name isString
 
function U.isString( v )
 
return isSomething( v, '' );
 
end
 
 
 
-- @name isTable
 
function U.isTable( v )
 
return isSomething( v, {} );
 
end
 
 
 
-- @name isEmpty
 
function U.isEmpty( v )
 
return (
 
U.isString( v ) and mwTextTrim( v ) == ''
 
or
 
U.isTable( v ) and U.count( v ) == 0
 
);
 
end
 
 
 
-- @name validate
 
-- @description Asserts if a value has content.
 
--[[function U.validate( v )
 
-- If boolean, function or nil, just return them:
 
if U.isBoolean( v ) or U.isFunction( v ) or U.isNil( v ) then return v end
 
-- If number, it is accepted if it's not 0:
 
if U.isNumber( v ) then return v ~= 0 and v end
 
-- If string, it is accepted if it's not the empty string:
 
if U.isString( v ) then return mwTextTrim( v ) ~= '' and v end
 
-- If table, it is accepted if it has elements:
 
if U.isTable( v ) then return  U.count( v ) ~= 0 and v end
 
end--]]
 
 
 
-- @param ln A language index.
 
-- @description
 
function U.wrapInQuotes( name, ln )
 
if not UTIL.trim( name ) then
 
return '';  --  Return empty string.
 
end
 
 
 
return (ln ~= 'ja' and ln ~= 'zh')
 
and table.concat( { '"', name, '"' } )
 
or  table.concat( { '「', name, '」' } )
 
;
 
end
 
 
 
--[[function U.processArgs( frame, ... )
 
return
 
end]]
 
-- @name getArgs
 
-- @description Parses arguments.
 
-- @see [[Module:Arguments]]
 
local getArgs;
 
function U.getArgs( ... )
 
getArgs = getArgs or require( 'Module:Arguments' ).getArgs;
 
return getArgs( ... );
 
end
 
 
 
-- @name getName
 
-- @description Gets the localized name of a card, set or character.
 
-- @see [[Module:Name]]
 
local getName;
 
function U.getName( ... )
 
getName = getName or require( 'Module:Name' ).main;
 
return getName( ... );
 
end
 
 
 
-- @name getImgName
 
-- @description Gets the localized name of a card, set or character.
 
-- @see [[Module:Name]]
 
local getImgName;
 
function U.getImgName( ... )
 
getImgName = getImgName or require( 'Module:Card image name' ).main;
 
return getImgName( ... );
 
end
 
 
 
-- @name newInfoObject
 
-- @description
 
-- @see [[Module:Info class]]
 
local InfoClass;
 
function U.newInfoObject( title )
 
InfoClass = InfoClass or require( 'Module:Info class' );
 
return InfoClass.new( title );
 
end
 
 
 
-- @name newStringBuffer
 
-- @description
 
-- @see [[Module:StringBuffer]]
 
local StringBuffer;
 
function U.newStringBuffer()
 
StringBuffer = StringBuffer or require( 'Module:StringBuffer' );
 
return StringBuffer.new();
 
end
 
 
 
----------
 
-- Return:
 
----------
 
return U;
 
-- </pre>
 

Revision as of 07:31, 16 March 2023