summaryrefslogtreecommitdiffstats
path: root/aconf/model/model.lua
diff options
context:
space:
mode:
authorKaarle Ritvanen <kaarle.ritvanen@datakunkku.fi>2014-03-17 18:51:35 +0200
committerKaarle Ritvanen <kaarle.ritvanen@datakunkku.fi>2014-03-25 09:02:57 +0200
commit96b35ceb0b8e35b39acd7e8a3c30861739eaf01c (patch)
treec6ed6150a48237283e290adfb3a03fa10e172c07 /aconf/model/model.lua
parentd5bd615d0079a61c3bb498ce942a119b7d99884a (diff)
downloadaconf-96b35ceb0b8e35b39acd7e8a3c30861739eaf01c.tar.bz2
aconf-96b35ceb0b8e35b39acd7e8a3c30861739eaf01c.tar.xz
model: make match a method of Model instances
Diffstat (limited to 'aconf/model/model.lua')
-rw-r--r--aconf/model/model.lua16
1 files changed, 8 insertions, 8 deletions
diff --git a/aconf/model/model.lua b/aconf/model/model.lua
index e1b61bf..747d277 100644
--- a/aconf/model/model.lua
+++ b/aconf/model/model.lua
@@ -200,16 +200,9 @@ function M.Model:init(context)
return map(function(f) return f.name end, mt.meta().fields)
end
- function mt.match(filter)
- for k, v in pairs(filter) do
- if not util.contains(v, mt.load(k)) then return false end
- end
- return true
- end
-
function mt.validate()
for _, f in ipairs(_members(Field)) do
- if mt.match(f.condition or {}) then f:validate_saved()
+ if self:match(f.condition or {}) then f:validate_saved()
elseif f:_editable() then f:_save() end
end
if self.validate then self:validate() end
@@ -224,5 +217,12 @@ function M.Model:init(context)
for _, f in ipairs(_members(Model)) do mt.load(f.name) end
end
+function M.Model:match(filter)
+ for k, v in pairs(filter) do
+ if not util.contains(v, getmetatable(self).load(k)) then return false end
+ end
+ return true
+end
+
return M