diff options
author | Kaarle Ritvanen <kaarle.ritvanen@datakunkku.fi> | 2013-10-31 23:57:32 +0200 |
---|---|---|
committer | Kaarle Ritvanen <kaarle.ritvanen@datakunkku.fi> | 2013-10-31 23:57:47 +0200 |
commit | baca93fa10b7c9f7f59b87a737e150038fa90b07 (patch) | |
tree | 6da135b27a1fba32f00a0ed7f1b3b95c5a576d59 | |
parent | f7f72d6e0652a35308cd0ae8e5561aaa276ff59e (diff) | |
download | acf2-baca93fa10b7c9f7f59b87a737e150038fa90b07.tar.bz2 acf2-baca93fa10b7c9f7f59b87a737e150038fa90b07.tar.xz |
model: custom backend address derivation
-rw-r--r-- | acf2/model/node.lua | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/acf2/model/node.lua b/acf2/model/node.lua index 85fc416..ff187b8 100644 --- a/acf2/model/node.lua +++ b/acf2/model/node.lua @@ -25,6 +25,9 @@ function M.BoundMember:init(parent, name, field) function mt.__index(t, k) local member = field[k] if type(member) ~= 'function' then return member end + + local addr = field.addr or pth.escape(name) + if type(addr) == 'function' then addr = addr(pmt.addr) end return function(self, ...) return member( field, @@ -32,9 +35,7 @@ function M.BoundMember:init(parent, name, field) txn=pmt.txn, parent=parent, path=pth.join(pmt.path, name), - addr=pth.to_absolute( - field.addr or pth.escape(name), pmt.addr - ) + addr=pth.to_absolute(addr, pmt.addr) }, ... ) |