From bc3aba4ff05a318ab0ea57079c72588c8a9545b5 Mon Sep 17 00:00:00 2001 From: Luke Miller Date: Mon, 12 Apr 2021 16:55:24 -0400 Subject: [PATCH] changed modpol.orgs.list to modpol.orgs.array, added support for id or org name in get_org function --- modpol/orgs/new_orgs.lua | 31 +++++++++++++++++++------------ 1 file changed, 19 insertions(+), 12 deletions(-) diff --git a/modpol/orgs/new_orgs.lua b/modpol/orgs/new_orgs.lua index 586f656..3022f90 100644 --- a/modpol/orgs/new_orgs.lua +++ b/modpol/orgs/new_orgs.lua @@ -1,23 +1,30 @@ modpol.orgs = { count = 1, - list = {} + array = {} } -- sets modpol.orgs as it's own fallback modpol.orgs.__index = modpol.orgs -- ================================================== --- returns org when given its id +-- returns org when given its id or name function modpol.orgs.get_org(id) - return modpol.orgs.list[id] + if type(id) == 'string' then + for id, org in ipairs(modpol.orgs.array) do + if org.name == id then + return org + end + end + elseif type(id) == 'number' then + return modpol.orgs.array[id] end -- =============================================== -- returns a string list of all orgs -function modpol.orgs.list_orgs() +function modpol.orgs.list_all() local str - for k, v in ipairs(modpol.orgs.list) do + for k, v in ipairs(modpol.orgs.array) do if type(v) == 'table' then if str then str = str .. '\n' .. v.name @@ -32,9 +39,9 @@ end -- =========================================== -- deletes all orgs except for the instance function modpol.orgs.reset() - for k, v in ipairs(modpol.orgs.list) do + for k, v in ipairs(modpol.orgs.array) do if k > 1 then - modpol.orgs.list[k] = nil + modpol.orgs.array[k] = nil end end end @@ -44,7 +51,7 @@ end -- can only be run once, as only one instance can exist function modpol.orgs.init_instance() local error_msg - if modpol.orgs.list[1] then + if modpol.orgs.array[1] then error_msg = 'Error: instance has already been initialized' modpol.ocutil.log(error_msg) return false, error_msg @@ -64,7 +71,7 @@ function modpol.orgs.init_instance() setmetatable(instance, modpol.orgs) -- adding instance to org list - modpol.orgs.list[1] = instance + modpol.orgs.array[1] = instance return instance end @@ -136,7 +143,7 @@ function modpol.orgs:add_org(name) table.insert(self.children, child_org.id) -- adding child to org list - modpol.orgs.list[child_org.id] = child_org + modpol.orgs.array[child_org.id] = child_org return child_org @@ -144,7 +151,7 @@ end -- ======================================== -- recursively deletes an org and its suborgs --- leaves entry in modpol.orgs.list as a string "removed" +-- leaves entry in modpol.orgs.array as a string "removed" -- note: "reason" param was removed, can be added back function modpol.orgs:delete() if self.id == 1 then @@ -159,7 +166,7 @@ function modpol.orgs:delete() end end - modpol.orgs.list[self.id] = 'removed' + modpol.orgs.array[self.id] = 'removed' print('Removed ' .. self.name .. ': ' .. self.id) end