第37行:
第37行:
return ret
return ret
end
end
+
+
local QueryBuilder = {content = ""}
+
+
function QueryBuilder:new()
+
local n = {}
+
setmetatable(n, QueryBuilder)
+
self.__index = self
+
return n
+
end
+
function QueryBuilder:cat(v)
+
local n = self:new()
+
n.content = self.content .. v
+
return n
+
end
+
function QueryBuilder:bracket(t)
+
return self:cat('[['..t..']] ')
+
end
+
function QueryBuilder:or_()
+
return self:cat(' OR ')
+
end
+
function QueryBuilder:done()
+
return self.content
+
end
+
function QueryBuilder:page(name)
+
return self:bracket(name)
+
end
+
function QueryBuilder:category(name)
+
return self:bracket("Category:"..name)
+
end
+
function QueryBuilder:exists(prop)
+
return self:bracket(prop..'::+')
+
end
+
function QueryBuilder:property(prop, value)
+
return self:bracket(prop..'::'..value)
+
end
+
+
p.builder = QueryBuilder
return p
return p