| # Copyright 2013 The Chromium Authors. All rights reserved. |
| # Use of this source code is governed by a BSD-style license that can be |
| # found in the LICENSE file. |
| |
| import logging |
| |
| from extensions_paths import JSON_TEMPLATES |
| from data_source import DataSource |
| |
| |
| class StringsDataSource(DataSource): |
| '''Provides templates with access to a key to string mapping defined in a |
| JSON configuration file. |
| ''' |
| def __init__(self, server_instance, _): |
| self._cache = server_instance.compiled_fs_factory.ForJson( |
| server_instance.host_file_system_provider.GetTrunk()) |
| |
| def _GetStringsData(self): |
| return self._cache.GetFromFile('%sstrings.json' % JSON_TEMPLATES) |
| |
| def Cron(self): |
| return self._GetStringsData() |
| |
| def get(self, key): |
| string = self._GetStringsData().Get().get(key) |
| if string is None: |
| logging.warning('String "%s" not found' % key) |
| return string |