diff options
author | Kaarle Ritvanen <kaarle.ritvanen@datakunkku.fi> | 2013-04-26 13:38:29 +0300 |
---|---|---|
committer | Kaarle Ritvanen <kaarle.ritvanen@datakunkku.fi> | 2013-04-26 14:18:06 +0300 |
commit | a56c4cadafcda273706203d2bc12145a8294409b (patch) | |
tree | dd7d5844479e6727d89f5ce3a471cf624278d286 /acf/model/node.lua | |
parent | fe24757d5207309429c1b212b33d49d72429b6af (diff) | |
download | aconf-a56c4cadafcda273706203d2bc12145a8294409b.tar.bz2 aconf-a56c4cadafcda273706203d2bc12145a8294409b.tar.xz |
object-specific actions
Diffstat (limited to 'acf/model/node.lua')
-rw-r--r-- | acf/model/node.lua | 19 |
1 files changed, 10 insertions, 9 deletions
diff --git a/acf/model/node.lua b/acf/model/node.lua index 748b20d..7852c9e 100644 --- a/acf/model/node.lua +++ b/acf/model/node.lua @@ -14,9 +14,9 @@ local pth = require('acf.path') local update = require('acf.util').update -BoundField = class() +BoundMember = class() -function BoundField:init(parent, field) +function BoundMember:init(parent, field) local pmt = getmetatable(parent) local mt = {} @@ -80,8 +80,8 @@ function TreeNode:search(path, create) local mt = getmetatable(self) local name = path[1] - if not mt.has_field(name) then - raise(mt.path, 'Field does not exist: '..name) + if not mt.valid_member(name) then + raise(mt.path, 'Member does not exist: '..name) end local next = mt.get(name, create) @@ -106,12 +106,13 @@ function Collection:init(context, params) self.init = nil self.search = nil + local field = BoundMember(self, params.field) + local mt = getmetatable(self) - mt.field = BoundField(self, params.field) - mt.meta = {type='collection', members=mt.field:meta('$')} + mt.meta = {type='collection', members=field:meta('$')} - function mt.has_field(name) return true end + function mt.valid_member(name) return true end function mt.mmeta(name) return mt.meta.members end function mt.members() return mt.txn:get(mt.addr) or {} end @@ -121,8 +122,8 @@ function Collection:init(context, params) end end - function mt.load(k, create) return mt.field:load(k, create) end - function mt.save(k, v) mt.field:save(k, v) end + function mt.load(k, create) return field:load(k, create) end + function mt.save(k, v) field:save(k, v) end end |