Index: chrome/common/extensions/docs/server2/api_data_source.py |
diff --git a/chrome/common/extensions/docs/server2/api_data_source.py b/chrome/common/extensions/docs/server2/api_data_source.py |
index 90858cd50740f8e64f94a11c25ffaa8548953f5f..feedf0e1b1264b1ec9e45239c8d6e46fc968cbd5 100644 |
--- a/chrome/common/extensions/docs/server2/api_data_source.py |
+++ b/chrome/common/extensions/docs/server2/api_data_source.py |
@@ -16,7 +16,8 @@ class APIDataSource(object): |
"""This class fetches and loads JSON APIs from the FileSystem passed in with |
|cache_builder|, so the APIs can be plugged into templates. |
""" |
- def __init__(self, cache_builder, base_path): |
+ def __init__(self, cache_builder, file_system, base_path): |
+ self._file_system = file_system |
self._json_cache = cache_builder.build(self._LoadJsonAPI) |
self._idl_cache = cache_builder.build(self._LoadIdlAPI) |
self._base_path = base_path |
@@ -31,19 +32,34 @@ class APIDataSource(object): |
generator = HandlebarDictGenerator(idl_schema.IDLSchema(idl).process()[0]) |
return generator.Generate() |
+ def _GetChannel(self, path): |
not at google - send to devlin
2012/07/30 12:43:23
This is getting the Feature, not the Channel ("cha
cduvall
2012/07/30 19:08:29
Done.
|
+ path = path.replace('experimental_', '') |
+ try: |
+ perms = json.loads(json_comment_eater.Nom( |
+ self._file_system.ReadSingle( |
+ self._base_path + '/_permission_features.json'))) |
not at google - send to devlin
2012/07/30 12:43:23
Could you put the loaded JSON in a cache (like the
cduvall
2012/07/30 19:08:29
Done.
|
+ return perms.get(path, None) |
+ except: |
+ return None |
+ |
def __getitem__(self, key): |
return self.get(key) |
def get(self, key): |
path, ext = os.path.splitext(key) |
+ api_dict = { 'perms': self._GetChannel(path) } |
not at google - send to devlin
2012/07/30 12:43:23
no need to abbr perms
cduvall
2012/07/30 19:08:29
Done.
|
unix_name = model.UnixName(path) |
json_path = unix_name + '.json' |
idl_path = unix_name + '.idl' |
try: |
- return self._json_cache.GetFromFile(self._base_path + '/' + json_path) |
+ api_dict.update( |
+ self._json_cache.GetFromFile(self._base_path + '/' + json_path)) |
+ return api_dict |
not at google - send to devlin
2012/07/30 12:43:23
looks like this is a job for a helper method...
cduvall
2012/07/30 19:08:29
Done.
|
except Exception: |
try: |
- return self._idl_cache.GetFromFile(self._base_path + '/' + idl_path) |
+ api_dict.update( |
+ self._idl_cache.GetFromFile(self._base_path + '/' + idl_path)) |
+ return api_dict |
except Exception as e: |
logging.warn(e) |
return None |