summaryrefslogtreecommitdiffstats
path: root/acf/model/node.lua
diff options
context:
space:
mode:
authorKaarle Ritvanen <kaarle.ritvanen@datakunkku.fi>2013-05-08 22:57:51 +0300
committerKaarle Ritvanen <kaarle.ritvanen@datakunkku.fi>2013-05-08 23:07:00 +0300
commit161f76a3b9f6a3073b7dd397db6b26f431fc8734 (patch)
tree19641ec2d84337f620f8a1077b73a551e455c3ed /acf/model/node.lua
parent0d0a3bb94877049d6c79af5ae7c27f09f6483158 (diff)
downloadaconf-161f76a3b9f6a3073b7dd397db6b26f431fc8734.tar.bz2
aconf-161f76a3b9f6a3073b7dd397db6b26f431fc8734.tar.xz
optional automatic removal of empty collections
Diffstat (limited to 'acf/model/node.lua')
-rw-r--r--acf/model/node.lua7
1 files changed, 5 insertions, 2 deletions
diff --git a/acf/model/node.lua b/acf/model/node.lua
index afc3e0f..47a15c7 100644
--- a/acf/model/node.lua
+++ b/acf/model/node.lua
@@ -117,8 +117,11 @@ function Collection:init(context, params)
function mt.members() return mt.txn:get(mt.addr, 'table') or {} end
function mt.validate()
- if params.required and #mt.members() == 0 then
- raise(mt.path, 'Collection cannot be empty')
+ if #mt.members() > 0 then return end
+ if params.required then raise(mt.path, 'Collection cannot be empty') end
+ if params.destroy then
+ mt.txn:set(mt.addr)
+ validate(mt.parent)
end
end