summaryrefslogtreecommitdiff
path: root/xmake/core/base/semver.lua
diff options
context:
space:
mode:
authorruki <[email protected]>2018-10-09 22:42:28 +0800
committerruki <[email protected]>2018-10-09 10:14:53 +0800
commitaecf4e3f816fcd2432522f1a6d337df5a1257739 (patch)
tree4bca19e3cf06d7e053083ec20e0817b065cfba18 /xmake/core/base/semver.lua
parentefa00f1b278ec490507e726f57e0e51e8c371619 (diff)
improve macos and winos versions
Diffstat (limited to 'xmake/core/base/semver.lua')
-rw-r--r--xmake/core/base/semver.lua52
1 files changed, 52 insertions, 0 deletions
diff --git a/xmake/core/base/semver.lua b/xmake/core/base/semver.lua
index 03234801f..d2c094da5 100644
--- a/xmake/core/base/semver.lua
+++ b/xmake/core/base/semver.lua
@@ -65,6 +65,58 @@ function _instance:__tostring()
return self:rawstr()
end
+-- v1 == v2 (str/ver)?
+function _instance:eq(version)
+ return _instance.__eq(self, version)
+end
+
+-- v1 < v2 (str/ver)?
+function _instance:lt(version)
+ return _instance.__lt(self, version)
+end
+
+-- v1 <= v2 (str/ver)?
+function _instance:le(version)
+ return _instance.__le(self, version)
+end
+
+-- v1 > v2 (str/ver)?
+function _instance:gt(version)
+ return not _instance.__le(self, version)
+end
+
+-- v1 >= v2 (str/ver)?
+function _instance:ge(version)
+ return not _instance.__lt(self, version)
+end
+
+-- v1 == v2?
+function _instance:__eq(version)
+ if type(version) == "string" then
+ return semver.compare(self:rawstr(), version) == 0
+ elseif type(version) == "table" then
+ return semver.compare(self:rawstr(), version:rawstr()) == 0
+ end
+end
+
+-- v1 < v2?
+function _instance:__lt(version)
+ if type(version) == "string" then
+ return semver.compare(self:rawstr(), version) < 0
+ elseif type(version) == "table" then
+ return semver.compare(self:rawstr(), version:rawstr()) < 0
+ end
+end
+
+-- v1 <= v2?
+function _instance:__le(version)
+ if type(version) == "string" then
+ return semver.compare(self:rawstr(), version) <= 0
+ elseif type(version) == "table" then
+ return semver.compare(self:rawstr(), version:rawstr()) <= 0
+ end
+end
+
-- new an instance
function semver.new(version)