summaryrefslogtreecommitdiffstats
path: root/acf/model/node.lua
diff options
context:
space:
mode:
Diffstat (limited to 'acf/model/node.lua')
-rw-r--r--acf/model/node.lua19
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