Module:Abilities/utils: Difference between revisions

Sur (talk | contribs)
m get_value() adjusted to search number keys first as a string key and then as an integer index
Sur (talk | contribs)
m couldnt get working; removed get_value
Tag: Manual revert
Line 95: Line 95:
return notes_source_page
return notes_source_page
end
-- Generic function to traverse the table
-- A parameter can be passed that is numerical, like 2; and the function will
-- first try to access the key "2", otherwise it will look for the value at index=2 (3rd value)
function p.get_value(frame)
local args = frame.args
local value = item_data
for i = 1, #args do
local key = args[i]
-- First try string key
if type(value) == "table" and value[key] ~= nil then
value = value[key]
-- Then try numeric key if string didn't work
elseif type(value) == "table" then
local num_key = tonumber(key)
if num_key and value[num_key] ~= nil then
value = value[num_key]
else
return ""
end
else
return ""
end
end
-- Return final value, convert to string if not nil
if value == nil then
return ""
else
return tostring(value)
end
end
end


return p
return p