summaryrefslogtreecommitdiffstats
path: root/acf/transaction/init.lua
diff options
context:
space:
mode:
Diffstat (limited to 'acf/transaction/init.lua')
-rw-r--r--acf/transaction/init.lua7
1 files changed, 5 insertions, 2 deletions
diff --git a/acf/transaction/init.lua b/acf/transaction/init.lua
index 7f2f6b9..99b8b9d 100644
--- a/acf/transaction/init.lua
+++ b/acf/transaction/init.lua
@@ -1,10 +1,11 @@
--[[
-Copyright (c) 2012 Kaarle Ritvanen
+Copyright (c) 2012-2013 Kaarle Ritvanen
See LICENSE file for license details
--]]
module(..., package.seeall)
+local ErrorDict = require('acf.error').ErrorDict
local RootModel = require('acf.model').RootModel
local object = require('acf.object')
local super = object.super
@@ -121,7 +122,9 @@ function Transaction:search(path) return self.root:search(pth.split(path)) end
function Transaction:commit()
self:check()
- for _, func in pairs(self.validate) do func() end
+ local errors = ErrorDict()
+ for path, func in pairs(self.validate) do errors:collect(func) end
+ errors:raise()
local mods = {}
local handled = {}