From 96b35ceb0b8e35b39acd7e8a3c30861739eaf01c Mon Sep 17 00:00:00 2001 From: Kaarle Ritvanen Date: Mon, 17 Mar 2014 18:51:35 +0200 Subject: model: make match a method of Model instances --- aconf/model/model.lua | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) (limited to 'aconf/model/model.lua') 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 -- cgit v1.2.3