@@ -72,15 +72,17 @@
self.vars = Storage()
self.folder = None
self.application = None
self.function = None
self.args = List()
- self.extension = None
+ self.extension = 'html'
self.now = datetime.datetime.now()
+ self.utcnow = datetime.datetime.utcnow()
self.is_restful = False
self.is_https = False
self.is_local = False
+ self.global_settings = settings.global_settings
def compute_uuid(self):
self.uuid = '%s/%s.%s.%s' % (
self.application,
self.client.replace(':', '_'),
@@ -100,10 +102,12 @@
def f(_action=action,_self=self,*a,**b):
self.is_restful = True
method = _self.env.request_method
if len(_self.args) and '.' in _self.args[-1]:
_self.args[-1],_self.extension = _self.args[-1].rsplit('.',1)
+ current.response.headers['Content-Type'] = \
+ contenttype(_self.extension.lower())
if not method in ['GET','POST','DELETE','PUT']:
raise HTTP(400,"invalid method")
rest_action = _action().get(method,None)
if not rest_action:
raise HTTP(400,"method not supported")
@@ -180,10 +184,27 @@
else:
run_view_in(self._view_environment)
page = self.body.getvalue()
return page
+ def include_meta(self):
+ s = ''
+ for key,value in (self.meta or {}).items():
+ s += '' % (key,xmlescape(value))
+ self.write(s,escape=False)
+
+ def include_files(self):
+ s = ''
+ for k,f in enumerate(self.files or []):
+ if not f in self.files[:k]:
+ filename = f.lower().split('?')[0]
+ if filename.endswith('.css'):
+ s += '' % f
+ elif filename.endswith('.js'):
+ s += '' % f
+ self.write(s,escape=False)
+
def stream(
self,
stream,
chunk_size = DEFAULT_CHUNK_SIZE,
request=None,