Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(101)

Side by Side Diff: chrome/common/extensions/docs/server2/template_data_source.py

Issue 10545043: Extensions docs server: Design changes, partial template support. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 8 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
(Empty)
1 # Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 # Use of this source code is governed by a BSD-style license that can be
3 # found in the LICENSE file.
4
5 import logging
6 import os
7 import time
8
9 from third_party.handlebar import Handlebar
10
11 class TemplateDataSource(object):
not at google - send to devlin 2012/06/07 04:43:57 I was thinking, should be build all the template r
cduvall 2012/06/08 00:39:23 Done.
12 def __init__(self, fetcher, base_paths, cache_timeout):
not at google - send to devlin 2012/06/07 04:43:57 cache_timeout_seconds
cduvall 2012/06/08 00:39:23 Done.
13 logging.info('Template data source created.')
not at google - send to devlin 2012/06/07 04:43:57 It's ok if you want to leave logging in for now (t
cduvall 2012/06/08 00:39:23 Done.
14 self._fetcher = fetcher
15 self._template_cache = {}
16 self._base_paths = base_paths
17 self._cache_timeout = cache_timeout
18
19 def __getitem__(self, key):
20 return self.get(key)
21
22 def get(self, key):
23 index = key.rfind('.html')
24 if index > 0:
25 key = key[:index]
26 path = key + '.html'
27 if key in self._template_cache:
28 compiled_template, compile_time = self._template_cache[key]
29 if (time.time() - compile_time) > self._cache_timeout:
30 self._template_cache.pop(key)
31 if key not in self._template_cache:
32 logging.info('Template cache miss for: ' + path)
33 compiled_template = None
34 for base_path in self._base_paths:
35 try:
36 template = self._fetcher.FetchResource(base_path + path).content
37 compiled_template = Handlebar(template)
38 self._template_cache[key] = (compiled_template, time.time())
not at google - send to devlin 2012/06/07 04:43:57 Consider making the cache entries actual objects t
cduvall 2012/06/08 00:39:23 Done.
39 break
40 except:
41 pass
42
43 return compiled_template
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698