Add files via upload
This commit is contained in:
@@ -0,0 +1,34 @@
|
||||
-- LibStub is a simple versioning stub meant for use in Libraries. http://www.wowace.com/wiki/LibStub for more info
|
||||
-- LibStub is hereby placed in the Public Domain Credits: Kaelten, Cladhaire, ckknight, Mikk, Ammo, Nevcairiel, joshborke
|
||||
local LIBSTUB_MAJOR, LIBSTUB_MINOR = "LibStub", 2 -- NEVER MAKE THIS AN SVN REVISION! IT NEEDS TO BE USABLE IN ALL REPOS!
|
||||
local _G = getfenv()
|
||||
local strfind, strfmt = string.find, string.format
|
||||
local LibStub = _G[ LIBSTUB_MAJOR ]
|
||||
|
||||
if not LibStub or LibStub.minor < LIBSTUB_MINOR then
|
||||
LibStub = LibStub or { libs = {}, minors = {} }
|
||||
_G[ LIBSTUB_MAJOR ] = LibStub
|
||||
LibStub.minor = LIBSTUB_MINOR
|
||||
|
||||
function LibStub:NewLibrary( major, minor )
|
||||
assert( type( major ) == "string", "Bad argument #2 to `NewLibrary' (string expected)" )
|
||||
local _, _, num = strfind( minor, "(%d+)" )
|
||||
minor = assert( tonumber( num ), "Minor version must either be a number or contain a number." )
|
||||
|
||||
local oldminor = self.minors[ major ]
|
||||
if oldminor and oldminor >= minor then return nil end
|
||||
self.minors[ major ], self.libs[ major ] = minor, self.libs[ major ] or {}
|
||||
return self.libs[ major ], oldminor
|
||||
end
|
||||
|
||||
function LibStub:GetLibrary( major, silent )
|
||||
if not self.libs[ major ] and not silent then
|
||||
error( strfmt( "Cannot find a library instance of %q.", tostring( major ) ), 2 )
|
||||
end
|
||||
return self.libs[ major ], self.minors[ major ]
|
||||
end
|
||||
|
||||
function LibStub:IterateLibraries() return pairs( self.libs ) end
|
||||
|
||||
setmetatable( LibStub, { __call = LibStub.GetLibrary } )
|
||||
end
|
||||
Reference in New Issue
Block a user