モジュール:ProcessArgs

提供: Minecraft Wiki
移動先: 案内検索

このモジュールは、引数がマージされ、正規化することができます。これは、引数にアクセスするためのメタテーブルを引数実テーブルの代わりに空のテーブルを作成する副作用があります。これは演算子が機能だけでなく、新しい値を反復処理するときに無視されることなく、テーブルに追加することを可能にすることができます。

規範関数は空白をトリミングし、nilに空の引数を設定、それに渡された引数を正規化します。表が関数に渡されていない場合は、自動的に現在のフレームの親引数テーブルを取得します。

マージ機能は、最初のテーブルの値を有する第2のテーブルから重複した値を上書きするだけでなく、規範パラメータがtrueの場合、ノルム関数と同じことをして、2つのテーブルをマージします。 最初のパラメータがテーブルでない場合は、標準パラメータの値として使用され、それが自動的に現在のフレームの直接渡される引数テーブルを取得し、現在のフレームの親引数をテーブルでそれをマージします。

[閲覧 | 編集 | 履歴 | キャッシュ破棄]上記の解説は、モジュール:ProcessArgs/docから参照されています。
local p = {}
function p.norm( origArgs )
	if type( origArgs ) ~= 'table' then
		origArgs = mw.getCurrentFrame():getParent().args
	end
	local args = {}
	
	for k, v in pairs( origArgs ) do
		v = mw.text.trim( tostring( v ) )
		if v ~= '' then
			args[k] = v
		end
	end
	
	return args
end

function p.merge( origArgs, parentArgs, norm )
	if type( origArgs ) ~= 'table' then
		norm = origArgs
		local f = mw.getCurrentFrame()
		origArgs = f.args
		parentArgs = f:getParent().args
	end
	local args = {}
	
	for k, v in pairs( origArgs ) do
		v = mw.text.trim( tostring( v ) )
		if not norm or norm and v ~= '' then
			args[k] = v
		end
	end
	
	for k, v in pairs( parentArgs ) do
		v = mw.text.trim( v )
		if ( not norm or norm and v ~= '' ) and not args[k] then
			args[k] = v
		end
	end
	
	return args
end
return p