webmcp
view framework/env/execute/multi_wrapped.lua @ 484:66086fa01d6e
Code cleanup; Pass moonbridge_io.poll to main handlers
| author | jbe | 
|---|---|
| date | Sun Jun 11 22:29:20 2017 +0200 (2017-06-11) | 
| 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
