summaryrefslogtreecommitdiffstats
path: root/acf/persistence/init.lua
diff options
context:
space:
mode:
authorKaarle Ritvanen <kaarle.ritvanen@datakunkku.fi>2013-10-08 18:50:56 +0300
committerKaarle Ritvanen <kaarle.ritvanen@datakunkku.fi>2013-10-08 18:50:56 +0300
commit33728ad3382d74281412d4556561d479bb88832b (patch)
treee8a9b2798dec96d820715f729989e91f9e7d5e12 /acf/persistence/init.lua
parent3e48dd63e8bdf0c2641cfb73e6b20bea8c466ff8 (diff)
downloadacf2-33728ad3382d74281412d4556561d479bb88832b.tar.bz2
acf2-33728ad3382d74281412d4556561d479bb88832b.tar.xz
changed module paths from acf to acf2v0.1.0
Diffstat (limited to 'acf/persistence/init.lua')
-rw-r--r--acf/persistence/init.lua79
1 files changed, 0 insertions, 79 deletions
diff --git a/acf/persistence/init.lua b/acf/persistence/init.lua
deleted file mode 100644
index 044d4b2..0000000
--- a/acf/persistence/init.lua
+++ /dev/null
@@ -1,79 +0,0 @@
---[[
-Copyright (c) 2012-2013 Kaarle Ritvanen
-See LICENSE file for license details
---]]
-
-local M = {}
-
-local loadmods = require('acf.loader')
-local topology = require('acf.model.root').topology
-local object = require('acf.object')
-local pth = require('acf.path')
-local util = require('acf.util')
-
-local stringy = require('stringy')
-
-
-local DataStore = object.class(
- require('acf.transaction.backend').TransactionBackend
-)
-
-function DataStore:init()
- object.super(self, DataStore):init()
- self.backends = util.map(
- function(m) return m() end,
- loadmods('persistence/backends')
- )
-end
-
-function DataStore:split_path(path)
- local comps = pth.split(path)
- local backend = self.backends[comps[1]]
- assert(backend)
- table.remove(comps, 1)
- return backend, comps
-end
-
-function DataStore:get(path)
- local backend, comps = self:split_path(path)
- local top = topology(path)
-
- local res = backend:get(comps, top)
-
- if top then
- local t = top.type
- if t and res ~= nil then
- local atype = type(res)
-
- if t == 'table' then assert(atype == 'table')
-
- else
- assert(atype ~= 'table')
-
- if t == 'string' then res = tostring(res)
- elseif t == 'number' then res = tonumber(res)
- elseif t == 'boolean' then
- res = (res and res ~= 'false') and true or false
- elseif t == 'reference' then assert(atype == 'string')
- else assert(false) end
- end
- end
- end
-
- return util.copy(res), self.mod_time[path] or 0
-end
-
-function DataStore:_set_multiple(mods)
- local bms = {}
-
- for _, mod in ipairs(mods) do
- local path, value = unpack(mod)
- local backend, comps = self:split_path(path)
- table.insert(util.setdefault(bms, backend, {}), {comps, value})
- end
-
- for backend, bm in pairs(bms) do backend:set(bm) end
-end
-
-
-return DataStore()