diff options
author | Kaarle Ritvanen <kaarle.ritvanen@datakunkku.fi> | 2013-10-08 18:50:56 +0300 |
---|---|---|
committer | Kaarle Ritvanen <kaarle.ritvanen@datakunkku.fi> | 2013-10-08 18:50:56 +0300 |
commit | 33728ad3382d74281412d4556561d479bb88832b (patch) | |
tree | e8a9b2798dec96d820715f729989e91f9e7d5e12 /acf/model/set.lua | |
parent | 3e48dd63e8bdf0c2641cfb73e6b20bea8c466ff8 (diff) | |
download | acf2-0.1.0.tar.bz2 acf2-0.1.0.tar.xz |
changed module paths from acf to acf2v0.1.0
Diffstat (limited to 'acf/model/set.lua')
-rw-r--r-- | acf/model/set.lua | 47 |
1 files changed, 0 insertions, 47 deletions
diff --git a/acf/model/set.lua b/acf/model/set.lua deleted file mode 100644 index b5b8dc3..0000000 --- a/acf/model/set.lua +++ /dev/null @@ -1,47 +0,0 @@ ---[[ -Copyright (c) 2012-2013 Kaarle Ritvanen -See LICENSE file for license details ---]] - -local M = {} - -local TreeNode = require('acf.model.field').TreeNode -local npairs = require('acf.model.node').pairs -local object = require('acf.object') - - -M.Set = object.class(require('acf.model.node').List) - -function M.Set:init(context, params) - assert(not object.isinstance(params.field, TreeNode)) - object.super(self, M.Set):init(context, params) - - local function find(value) - for i, member in npairs(self) do - if member == value then return i end - end - end - - local mt = getmetatable(self) - mt.dereference = false - mt.meta.type = 'set' - - function mt.get(k, create) - local i = find(k) - if i then return mt.load(i) end - if create then return k end - end - - function mt.__newindex(t, k, v) - assert(v == nil) - local i = find(k) - if not i then return end - mt.save(i, nil) - end - - local insert = mt.insert - function mt.insert(v) if not find(v) then insert(v) end end -end - - -return M |