- add sources.
[platform/framework/web/crosswalk.git] / src / chrome / common / extensions / docs / server2 / template_data_source.py
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 posixpath
7 import traceback
8
9 from data_source import DataSource
10 from docs_server_utils import FormatKey
11 from file_system import FileNotFoundError
12 from svn_constants import PRIVATE_TEMPLATE_PATH
13
14
15 class TemplateDataSource(DataSource):
16   '''Provides a DataSource interface for compiled templates.
17   '''
18
19   def __init__(self, server_instance, _, partial_dir=PRIVATE_TEMPLATE_PATH):
20     self._template_cache = server_instance.compiled_fs_factory.ForTemplates(
21         server_instance.host_file_system_provider.GetTrunk())
22     self._partial_dir = partial_dir
23
24   def get(self, path):
25     try:
26       return self._template_cache.GetFromFile('%s/%s.html' %
27           (self._partial_dir, path)).Get()
28     except FileNotFoundError:
29       logging.warning(traceback.format_exc())
30       return None
31
32   def Cron(self):
33     # TODO(kalman): Implement this; probably by finding all files that can be
34     # compiled to templates underneath |self._partial_dir| and compiling them.
35     pass