From cfc97c1ad210ee875daab6d24426b128d0a69b3b Mon Sep 17 00:00:00 2001 From: Lasse Nielsen Date: Mon, 23 Feb 2026 00:28:35 +0100 Subject: [PATCH] feat: bundle LibStub directly in repo --- .gitignore | 2 +- .pkgmeta | 4 +- LibStub/Changelog-LibStub-1.0.2-70000.txt | 14 +++++++ LibStub/LibStub.lua | 51 +++++++++++++++++++++++ LibStub/LibStub.toc | 13 ++++++ 5 files changed, 80 insertions(+), 4 deletions(-) create mode 100644 LibStub/Changelog-LibStub-1.0.2-70000.txt create mode 100644 LibStub/LibStub.lua create mode 100644 LibStub/LibStub.toc diff --git a/.gitignore b/.gitignore index f09c963..a1f517a 100644 --- a/.gitignore +++ b/.gitignore @@ -6,4 +6,4 @@ .idea/ .vscode/ *.iml -LibStub/ \ No newline at end of file +LibStub/tests/ \ No newline at end of file diff --git a/.pkgmeta b/.pkgmeta index 3f111d4..39c141a 100644 --- a/.pkgmeta +++ b/.pkgmeta @@ -1,9 +1,6 @@ package-as: LibAnimate enable-toc-creation: yes -externals: - LibStub: https://repos.wowace.com/wow/libstub/trunk - ignore: - README.md - .github @@ -14,6 +11,7 @@ ignore: - cliff.toml - AGENTS.md - icon.png + - LibStub/tests - CHANGELOG.md - AGENTS.md diff --git a/LibStub/Changelog-LibStub-1.0.2-70000.txt b/LibStub/Changelog-LibStub-1.0.2-70000.txt new file mode 100644 index 0000000..79e429c --- /dev/null +++ b/LibStub/Changelog-LibStub-1.0.2-70000.txt @@ -0,0 +1,14 @@ +------------------------------------------------------------------------ +r106 | kaelten | 2016-08-18 04:06:06 +0000 (Thu, 18 Aug 2016) | 1 line +Changed paths: + A /tags/1.0.2-70000 (from /trunk:105) + +Tagging as 1.0.2-70000 +------------------------------------------------------------------------ +r105 | kaelten | 2016-08-18 04:00:27 +0000 (Thu, 18 Aug 2016) | 2 lines +Changed paths: + M /trunk/LibStub.toc + +Updating ToC for Legion. + +------------------------------------------------------------------------ diff --git a/LibStub/LibStub.lua b/LibStub/LibStub.lua new file mode 100644 index 0000000..7e9b5cd --- /dev/null +++ b/LibStub/LibStub.lua @@ -0,0 +1,51 @@ +-- $Id: LibStub.lua 103 2014-10-16 03:02:50Z mikk $ +-- LibStub is a simple versioning stub meant for use in Libraries. http://www.wowace.com/addons/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 LibStub = _G[LIBSTUB_MAJOR] + +-- Check to see is this version of the stub is obsolete +if not LibStub or LibStub.minor < LIBSTUB_MINOR then + LibStub = LibStub or {libs = {}, minors = {} } + _G[LIBSTUB_MAJOR] = LibStub + LibStub.minor = LIBSTUB_MINOR + + -- LibStub:NewLibrary(major, minor) + -- major (string) - the major version of the library + -- minor (string or number ) - the minor version of the library + -- + -- returns nil if a newer or same version of the lib is already present + -- returns empty library object or old library object if upgrade is needed + function LibStub:NewLibrary(major, minor) + assert(type(major) == "string", "Bad argument #2 to `NewLibrary' (string expected)") + minor = assert(tonumber(strmatch(minor, "%d+")), "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 + + -- LibStub:GetLibrary(major, [silent]) + -- major (string) - the major version of the library + -- silent (boolean) - if true, library is optional, silently return nil if its not found + -- + -- throws an error if the library can not be found (except silent is set) + -- returns the library object if found + function LibStub:GetLibrary(major, silent) + if not self.libs[major] and not silent then + error(("Cannot find a library instance of %q."):format(tostring(major)), 2) + end + return self.libs[major], self.minors[major] + end + + -- LibStub:IterateLibraries() + -- + -- Returns an iterator for the currently registered libraries + function LibStub:IterateLibraries() + return pairs(self.libs) + end + + setmetatable(LibStub, { __call = LibStub.GetLibrary }) +end diff --git a/LibStub/LibStub.toc b/LibStub/LibStub.toc new file mode 100644 index 0000000..23e7bae --- /dev/null +++ b/LibStub/LibStub.toc @@ -0,0 +1,13 @@ +## Interface: 70000 +## Title: Lib: LibStub +## Notes: Universal Library Stub +## Credits: Kaelten, Cladhaire, ckknight, Mikk, Ammo, Nevcairiel +## X-Website: http://www.wowace.com/addons/libstub/ +## X-Category: Library +## X-License: Public Domain +## X-Curse-Packaged-Version: 1.0.2-70000 +## X-Curse-Project-Name: LibStub +## X-Curse-Project-ID: libstub +## X-Curse-Repository-ID: wow/libstub/mainline + +LibStub.lua