webmcp
view framework/env/execute/multi_wrapped.lua @ 440:66d7a0ac9c9d
Allow <db_handle>:create_list(...) to create a non-empty list by passing a table as argument (needed for references)
| author | jbe |
|---|---|
| date | Tue Feb 09 20:09:34 2016 +0100 (2016-02-09) |
| parents | 9fdfb27f8e67 |
| children |
line source
1 --[[--
2 execute.multi_wrapped(
3 wrapper_funcs, -- multiple wrapper functions (i.e. filters)
4 inner_func -- inner function (i.e. an action or view)
5 )
7 This function does the same as execute.wrapped(...), but with multiple wrapper functions, instead of just one wrapper function. It is used by execute.filtered_view{...} and execute.filtered_action{...} to wrap multiple filters around the view or action.
9 --]]--
11 function execute.multi_wrapped(wrapper_funcs, inner_func)
12 local function wrapped_execution(pos)
13 local wrapper_func = wrapper_funcs[pos]
14 if wrapper_func then
15 return execute.wrapped(
16 wrapper_func,
17 function()
18 wrapped_execution(pos+1)
19 end
20 )
21 else
22 return inner_func()
23 end
24 end
25 return wrapped_execution(1)
26 end
