aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorHisham Muhammad <hisham@gobolinux.org>2018-04-19 19:31:25 -0300
committerHisham Muhammad <hisham@gobolinux.org>2018-04-23 09:31:37 -0300
commit50b6e27d957ca2d994234536452d6d0411eda03a (patch)
tree16d1805146b8f35e571f33af5ca7516b7d9858ed /src
parent7c09d1c22cf14ff088b9de4ab214164818fba28a (diff)
downloadluarocks-50b6e27d957ca2d994234536452d6d0411eda03a.tar.gz
luarocks-50b6e27d957ca2d994234536452d6d0411eda03a.tar.bz2
luarocks-50b6e27d957ca2d994234536452d6d0411eda03a.zip
queries: use metatable for default arch and substring fields
Store default values for the `arch` and `substring` fields of query objects in the metatable, to avoid storing them in the actual object for dependency listings, that are persisted in the manifest.
Diffstat (limited to 'src')
-rw-r--r--src/luarocks/queries.lua22
1 files changed, 12 insertions, 10 deletions
diff --git a/src/luarocks/queries.lua b/src/luarocks/queries.lua
index 2699aa8c..99728103 100644
--- a/src/luarocks/queries.lua
+++ b/src/luarocks/queries.lua
@@ -13,6 +13,18 @@ function query_mt.type()
13 return "query" 13 return "query"
14end 14end
15 15
16-- Fallback default value for the `arch` field, if not explicitly set.
17query_mt.arch = {
18 src = true,
19 all = true,
20 rockspec = true,
21 installed = true,
22 [cfg.arch] = true,
23}
24
25-- Fallback default value for the `substring` field, if not explicitly set.
26query_mt.substring = false
27
16--- Convert the arch field of a query table to table format. 28--- Convert the arch field of a query table to table format.
17-- @param input string, table or nil 29-- @param input string, table or nil
18local function arch_to_table(input) 30local function arch_to_table(input)
@@ -24,14 +36,6 @@ local function arch_to_table(input)
24 arch[a] = true 36 arch[a] = true
25 end 37 end
26 return arch 38 return arch
27 else
28 local arch = {}
29 arch["src"] = true
30 arch["all"] = true
31 arch["rockspec"] = true
32 arch["installed"] = true
33 arch[cfg.arch] = true
34 return arch
35 end 39 end
36end 40end
37 41
@@ -165,8 +169,6 @@ do
165 name = name, 169 name = name,
166 namespace = namespace, 170 namespace = namespace,
167 constraints = constraints, 171 constraints = constraints,
168 substring = false,
169 arch = arch_to_table(nil),
170 } 172 }
171 return setmetatable(self, query_mt) 173 return setmetatable(self, query_mt)
172 end 174 end