diff http/src/luan/modules/http/Server.luan @ 503:92c3d22745b8

make _ENV optional
author Franklin Schmidt <fschmidt@gmail.com>
date Wed, 20 May 2015 23:24:46 -0600
parents 2b9bc97f0439
children 9bf9ad733827
line wrap: on
line diff
--- a/http/src/luan/modules/http/Server.luan	Tue May 19 17:57:20 2015 -0600
+++ b/http/src/luan/modules/http/Server.luan	Wed May 20 23:24:46 2015 -0600
@@ -20,81 +20,84 @@
 local LuanHandler = require "java:luan.modules.http.LuanHandler"
 local NotFound = require "java:luan.modules.http.NotFound"
 
+local M = {}
 
-port = 8080
+M.port = 8080
 
-private_password = "password"
+M.private_password = "password"
 
-welcome_file = "index.html"
+M.welcome_file = "index.html"
 
 
-authentication_handler = AuthenticationHandler.new("/private/")
+M.authentication_handler = AuthenticationHandler.new("/private/")
 
-luan_handler = LuanHandler.new()
+M.luan_handler = LuanHandler.new()
 
-resource_handler = ResourceHandler.new()
-resource_handler.setDirectoriesListed(true)
+M.resource_handler = ResourceHandler.new()
+M.resource_handler.setDirectoriesListed(true)
 
-handlers = HandlerList.new()
-handlers.setHandlers { authentication_handler, luan_handler, resource_handler }
+M.handlers = HandlerList.new()
+M.handlers.setHandlers { M.authentication_handler, M.luan_handler, M.resource_handler }
 
-function add_folder(context,dir)
+function M.add_folder(context,dir)
 	local rh = ResourceHandler.new()
 	rh.setResourceBase(dir)
 	rh.setDirectoriesListed(true)
 	local ch = ContextHandler.new(context)
 	ch.setHandler(rh)
-	handlers.addHandler(ch)
+	M.handlers.addHandler(ch)
 	return rh
 end
 
-handler_wrapper = HandlerWrapper.new()
-handler_wrapper.setHandler(handlers)
+M.handler_wrapper = HandlerWrapper.new()
+M.handler_wrapper.setHandler(M.handlers)
 
-function zip()
+function M.zip()
 	local h = GzipHandler.new()
-	h.setHandler(handler_wrapper.getHandler())
-	handler_wrapper.setHandler(h)
+	h.setHandler(M.handler_wrapper.getHandler())
+	M.handler_wrapper.setHandler(h)
 end
 
-log = NCSARequestLog.new()
-log.setExtended(false)
-log_handler = RequestLogHandler.new()
-log_handler.setRequestLog(log)
+M.log = NCSARequestLog.new()
+M.log.setExtended(false)
+M.log_handler = RequestLogHandler.new()
+M.log_handler.setRequestLog(M.log)
 
-function set_log_file(file_name)
-	log.setFilename(file_name)
+function M.set_log_file(file_name)
+	M.log.setFilename(file_name)
 end
 
 local hc = HandlerCollection.new()
-hc.setHandlers { SessionHandler.new(), handler_wrapper, DefaultHandler.new(), log_handler }
+hc.setHandlers { SessionHandler.new(), M.handler_wrapper, DefaultHandler.new(), M.log_handler }
 
 
-function init(dir)
+function M.init(dir)
 	dir = dir.gsub("/$","")  -- remove trailing '/' if any
 	Http.dir = dir
 	function Io.schemes.site(path,add_extension)
 		return Io.uri( dir..path, add_extension )
 	end
-	authentication_handler.setPassword(private_password)
+	M.authentication_handler.setPassword(M.private_password)
 	local base = dir
 	if base.match("^classpath:") ~= nil then
-		base = dir.."#"..welcome_file.."#"..welcome_file..".luan"
+		base = dir.."#"..M.welcome_file.."#"..M.welcome_file..".luan"
 	end
-	resource_handler.setResourceBase(Io.uri(base).to_string())
-	resource_handler.setWelcomeFiles {welcome_file}
-	luan_handler.setWelcomeFile(welcome_file)
-	handlers.addHandler(NotFound.new())
-	server = Server.new(port)
-	server.setHandler(hc)
+	M.resource_handler.setResourceBase(Io.uri(base).to_string())
+	M.resource_handler.setWelcomeFiles {M.welcome_file}
+	M.luan_handler.setWelcomeFile(M.welcome_file)
+	M.handlers.addHandler(NotFound.new())
+	M.server = Server.new(M.port)
+	M.server.setHandler(hc)
 	Package.load("site:/init")
 end
 
-function start()
-	server.start()
+function M.start()
+	M.server.start()
 end
 
-function serve(dir)
-	init(dir)
-	start()
+function M.serve(dir)
+	M.init(dir)
+	M.start()
 end
+
+return M