# HG changeset patch # User jbe # Date 1420883057 -3600 # Node ID 6ac7133bb58e94480a9b9d6f32e8421e1cc77fa7 # Parent d69106e271fc32b4b5f70b95a9262522999aaa79 Work on Moonbridge integration: added execute._initializers(...), new function request.get_param{...}; Code cleanup in mcp.lua and tempstore.save(...) diff -r d69106e271fc -r 6ac7133bb58e framework/bin/mcp.lua --- a/framework/bin/mcp.lua Sat Jan 10 10:30:01 2015 +0100 +++ b/framework/bin/mcp.lua Sat Jan 10 10:44:17 2015 +0100 @@ -170,6 +170,13 @@ try_exec(WEBMCP_BASE_PATH .. "env/__init.lua") end +-- replace Moonbridge listen function +local moonbridge_listen = listen +local listeners +function listen(args) + listeners[#listeners+1] = args +end + -- prohibit (unintended) definition of new global variables _ENV = setmetatable({}, { __index = _G, @@ -178,12 +185,7 @@ end }) --- replace Moonbridge listen function and execute configurations -local moonbridge_listen = listen -local listeners -function _G.listen(args) - listeners[#listeners+1] = args -end +-- execute configurations for i, config_name in ipairs(WEBMCP_CONFIG_NAMES) do execute.config(config_name) end diff -r d69106e271fc -r 6ac7133bb58e framework/env/execute/_initializers.lua --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/framework/env/execute/_initializers.lua Sat Jan 10 10:44:17 2015 +0100 @@ -0,0 +1,25 @@ +function execute._initializers(initializer_path_element) + local yieldvalue = {} + local coro = coroutine.wrap(function() + execute.multi_wrapped( + execute._create_sorted_execution_list( + function(add_by_path) + add_by_path(initializer_path_element) + add_by_path(WEBMCP_APP_NAME, initializer_path_element) + end, + function(full_path, relative_path) + execute.file_path{ file_path = full_path } + end + ), + function() + coroutine.yield(yieldvalue) + end + ) + return yieldvalue + end) + local function cont() + assert(coro() == yieldvalue, "Unexpected yield") + end + cont() + execute._finalizers[#execute._finalizers+1] = cont +end diff -r d69106e271fc -r 6ac7133bb58e framework/env/request/get_param.lua --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/framework/env/request/get_param.lua Sat Jan 10 10:44:17 2015 +0100 @@ -0,0 +1,33 @@ +--[[-- +value = -- value of GET/POST parameter, or value list if multiple == true +request.get_param{ + method = method, -- "GET", "POST", or nil to query both (POST has precedence) + name = name, -- field name + index = index, -- defaults to 1 to get first occurrence, only applicable if multiple == false + multiple = multiple -- boolean to indicate whether to return a single value or a value list +} + +Reads GET/POST parameters directly from the underlaying request. + +--]]-- + +function request.get_param(args) + local param_list + if args.method == "GET" then + param_list = request._http_request.get_params_list[args.name] + elseif args.method == "POST" then + param_list = request._http_request.post_params_list[args.name] + elseif not args.method then + param_list = request._http_request.post_params_list[args.name] + if not param_list[index or 1] then + param_list = request._http_request.get_params_list[args.name] + end + end + if multiple then + return param_list + else + return param_list[index or 1] + end +end + +--//-- diff -r d69106e271fc -r 6ac7133bb58e framework/env/tempstore/save.lua --- a/framework/env/tempstore/save.lua Sat Jan 10 10:30:01 2015 +0100 +++ b/framework/env/tempstore/save.lua Sat Jan 10 10:44:17 2015 +0100 @@ -9,7 +9,7 @@ --]]-- function tempstore.save(blob) - local key = multirand.string(26, "123456789bcdfghjklmnpqrstvwxyz"); + local key = multirand.string(26, "123456789bcdfghjklmnpqrstvwxyz") local filename = encode.file_path( WEBMCP_BASE_PATH, 'tmp', "tempstore-" .. key .. ".tmp" )