diff options
author | Aaron LI <aaronly.me@outlook.com> | 2016-11-14 15:53:53 +0800 |
---|---|---|
committer | Aaron LI <aaronly.me@outlook.com> | 2016-11-14 15:53:53 +0800 |
commit | 3d3b662ce0eb40ed91c0d1a6466dbcd9e42d2abf (patch) | |
tree | 63230d58e23baf9af64f3dec250dda71bf95fd17 /fg21sim/webui | |
parent | 013c815abfa4fd0391b79b2653d989588b170e86 (diff) | |
download | fg21sim-3d3b662ce0eb40ed91c0d1a6466dbcd9e42d2abf.tar.bz2 |
webui: Replace "make_application()" with Application class
Diffstat (limited to 'fg21sim/webui')
-rw-r--r-- | fg21sim/webui/__init__.py | 2 | ||||
-rw-r--r-- | fg21sim/webui/app.py | 35 | ||||
-rw-r--r-- | fg21sim/webui/websocket.py | 3 |
3 files changed, 19 insertions, 21 deletions
diff --git a/fg21sim/webui/__init__.py b/fg21sim/webui/__init__.py index 637e653..745c947 100644 --- a/fg21sim/webui/__init__.py +++ b/fg21sim/webui/__init__.py @@ -1,4 +1,4 @@ # Copyright (c) 2016 Weitian LI <liweitianux@live.com> # MIT license -from .app import make_application +from .app import Application diff --git a/fg21sim/webui/app.py b/fg21sim/webui/app.py index 8199aa7..004be8d 100644 --- a/fg21sim/webui/app.py +++ b/fg21sim/webui/app.py @@ -16,6 +16,7 @@ import os import tornado.web from .websocket import FG21simWSHandler +from ..configs import ConfigManager class IndexHandler(tornado.web.RequestHandler): @@ -23,23 +24,21 @@ class IndexHandler(tornado.web.RequestHandler): self.render("index.html") -_settings = { - # The static files will be served from the default "/static/" URI. - # Recommend to use `{{ static_url(filepath) }}` in the templates. - "static_path": os.path.join(os.path.dirname(__file__), "static"), - "template_path": os.path.join(os.path.dirname(__file__), "templates"), -} +class Application(tornado.web.Application): + configmanager = ConfigManager() - -# FIXME: -# * Subclass on `tornado.web.Application` -# * hold the attributes (e.g., configs, console) ?? -def make_application(**kwargs): - settings = _settings - settings.update(kwargs) - appplication = tornado.web.Application( - handlers=[ - (r"/", IndexHandler), + def __init__(self, **kwargs): + handlers = [ + (r"/", IndexHandler), (r"/ws", FG21simWSHandler), - ], **settings) - return appplication + ] + settings = { + # The static files will be served from the default "/static/" URI. + # Recommend to use `{{ static_url(filepath) }}` in the templates. + "static_path": os.path.join(os.path.dirname(__file__), + "static"), + "template_path": os.path.join(os.path.dirname(__file__), + "templates"), + } + settings.update(kwargs) + super().__init__(handlers, **settings) diff --git a/fg21sim/webui/websocket.py b/fg21sim/webui/websocket.py index 53d2da4..dffd864 100644 --- a/fg21sim/webui/websocket.py +++ b/fg21sim/webui/websocket.py @@ -26,7 +26,6 @@ from tornado.options import options from .consolehandler import ConsoleHandler from .utils import get_host_ip, ip_in_network -from ..configs import ConfigManager from ..errors import ConfigError @@ -101,7 +100,7 @@ class FG21simWSHandler(tornado.websocket.WebSocketHandler): # FIXME: # * better to move to the `Application` class ?? # * or create a ``ConfigsHandler`` similar to the ``ConsoleHandler`` - self.configs = ConfigManager() + self.configs = self.application.configmanager self.console_handler = ConsoleHandler(websocket=self) # logger.info("WebSocket: {0}: opened".format(self.name)) |