aboutsummaryrefslogtreecommitdiffstats
path: root/lua/mason-core/receipt.lua
diff options
context:
space:
mode:
authorWilliam Boman <william@redwill.se>2023-10-13 21:14:29 +0200
committerWilliam Boman <william@redwill.se>2025-02-19 09:23:19 +0100
commitae208dc380808ff1aef39929a0e897e881571d43 (patch)
treeb9044cec7223062db69998189c76f8163ac9d58b /lua/mason-core/receipt.lua
parentfix(location): use correct registry path (diff)
downloadmason-ae208dc380808ff1aef39929a0e897e881571d43.tar
mason-ae208dc380808ff1aef39929a0e897e881571d43.tar.gz
mason-ae208dc380808ff1aef39929a0e897e881571d43.tar.bz2
mason-ae208dc380808ff1aef39929a0e897e881571d43.tar.lz
mason-ae208dc380808ff1aef39929a0e897e881571d43.tar.xz
mason-ae208dc380808ff1aef39929a0e897e881571d43.tar.zst
mason-ae208dc380808ff1aef39929a0e897e881571d43.zip
refactor: standardize constructors and improve inheritance construction
Diffstat (limited to 'lua/mason-core/receipt.lua')
-rw-r--r--lua/mason-core/receipt.lua26
1 files changed, 14 insertions, 12 deletions
diff --git a/lua/mason-core/receipt.lua b/lua/mason-core/receipt.lua
index 748cab38..63403503 100644
--- a/lua/mason-core/receipt.lua
+++ b/lua/mason-core/receipt.lua
@@ -25,12 +25,12 @@ local M = {}
local InstallReceipt = {}
InstallReceipt.__index = InstallReceipt
-function InstallReceipt.new(data)
- return setmetatable(data, InstallReceipt)
+function InstallReceipt:new(data)
+ return setmetatable(data, self)
end
function InstallReceipt.from_json(json)
- return InstallReceipt.new(json)
+ return InstallReceipt:new(json)
end
function InstallReceipt:get_name()
@@ -72,14 +72,16 @@ end
local InstallReceiptBuilder = {}
InstallReceiptBuilder.__index = InstallReceiptBuilder
-function InstallReceiptBuilder.new()
- return setmetatable({
- links = {
- bin = vim.empty_dict(),
- share = vim.empty_dict(),
- opt = vim.empty_dict(),
- },
- }, InstallReceiptBuilder)
+function InstallReceiptBuilder:new()
+ ---@type InstallReceiptBuilder
+ local instance = {}
+ setmetatable(instance, self)
+ instance.links = {
+ bin = vim.empty_dict(),
+ share = vim.empty_dict(),
+ opt = vim.empty_dict(),
+ }
+ return instance
end
---@param name string
@@ -130,7 +132,7 @@ function InstallReceiptBuilder:build()
assert(self.start_time, "start_time is required")
assert(self.completion_time, "completion_time is required")
assert(self.source, "source is required")
- return InstallReceipt.new {
+ return InstallReceipt:new {
name = self.name,
schema_version = "1.2",
metrics = {