strings_data_source.py revision 3551c9c881056c480085172ff9840cab31610854
1# Copyright 2013 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
5from data_source import DataSource
6from third_party.json_schema_compiler.json_parse import Parse
7
8class StringsDataSource(DataSource):
9  '''Provides templates with access to a key to string mapping defined in a
10  JSON configuration file.
11  '''
12  def __init__(self, server_instance):
13    self._cache = server_instance.compiled_host_fs_factory.Create(
14        lambda _, strings_json: Parse(strings_json), StringsDataSource)
15    self._strings_json_path = server_instance.strings_json_path
16
17  def Cron(self):
18    self._cache.GetFromFile(self._strings_json_path)
19
20  def get(self, key):
21    return self._cache.GetFromFile(self._strings_json_path)[key]
22