view http/src/luan/modules/http/Http_test.luan @ 539:473e456444ff

Remove object-oriented primitive methods for string and binary
author Franklin Schmidt <fschmidt@gmail.com>
date Mon, 01 Jun 2015 17:53:55 -0600
parents 9218f9cf45d3
children cd944b010f25
line wrap: on
line source

local Io = require "luan:Io"
local String = require "luan:String"
local matches = String.matches
local Http = require "luan:http/Http"

local M = {}

M.welcome_file = "index.html"
M.cookie = {}

function M.get_page(path)
	if M.welcome_file ~= nil and matches(path,".*/") then
		path = path .. M.welcome_file
	end
	local old_out = Io.stdout
	local mod = require("site:"..path)
	mod()
	M.text_writer.close()
	Io.stdout = old_out
	return M.result.read_text()
end

function M.init()
	Http.request = Http.new_request{}
	Http.request.cookie = M.cookie

	Http.response = Http.new_response{

		text_writer = function()
			M.result = Io.uri "string:"
			M.text_writer = M.result.text_writer()
			return M.text_writer
		end;

		set_cookie = function(name,value)
			M.cookie[name] = value
		end;

		remove_cookie = function(name)
			M.cookie[name] = nil
		end;

		send_redirect = function(url)
			Http.response.redirect = url
		end;

	}

end

return M