29 lines
920 B
Lua
29 lines
920 B
Lua
function import(moduleName, currentModuleName)
|
|
local currentModuleNameParts
|
|
local moduleFullName = moduleName
|
|
local offset = 1
|
|
|
|
while true do
|
|
if string.byte(moduleName, offset) ~= 46 then -- .
|
|
moduleFullName = string.sub(moduleName, offset)
|
|
if currentModuleNameParts and #currentModuleNameParts > 0 then
|
|
moduleFullName = table.concat(currentModuleNameParts, ".") .. "." .. moduleFullName
|
|
end
|
|
break
|
|
end
|
|
offset = offset + 1
|
|
|
|
if not currentModuleNameParts then
|
|
if not currentModuleName then
|
|
local n,v = debug.getlocal(3, 1)
|
|
currentModuleName = v
|
|
end
|
|
|
|
currentModuleNameParts = string.split(currentModuleName, ".")
|
|
end
|
|
table.remove(currentModuleNameParts, #currentModuleNameParts)
|
|
end
|
|
|
|
return require(moduleFullName)
|
|
end
|