diff options
author | ahernandez.miralles@gmail.com <ahernandez.miralles@gmail.com@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-08-07 22:05:04 +0000 |
---|---|---|
committer | ahernandez.miralles@gmail.com <ahernandez.miralles@gmail.com@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-08-07 22:05:04 +0000 |
commit | 1d0e548a86cae4b6274fe9eef38b96a8e49aa12a (patch) | |
tree | b27dc9eb3319da3c9eaa93bb30493b6a6f63aac5 /chrome/common/extensions/docs/server2/api_data_source.py | |
parent | 177489835f6e988ff03548e579b50013785007e5 (diff) | |
download | chromium_src-1d0e548a86cae4b6274fe9eef38b96a8e49aa12a.zip chromium_src-1d0e548a86cae4b6274fe9eef38b96a8e49aa12a.tar.gz chromium_src-1d0e548a86cae4b6274fe9eef38b96a8e49aa12a.tar.bz2 |
Docserver: Factor SamplesModel out of SamplesDataSource
BUG=275039
NOTRY=True
Review URL: https://codereview.chromium.org/437323003
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@288149 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/common/extensions/docs/server2/api_data_source.py')
-rw-r--r-- | chrome/common/extensions/docs/server2/api_data_source.py | 25 |
1 files changed, 8 insertions, 17 deletions
diff --git a/chrome/common/extensions/docs/server2/api_data_source.py b/chrome/common/extensions/docs/server2/api_data_source.py index c57ecc5..56fae41 100644 --- a/chrome/common/extensions/docs/server2/api_data_source.py +++ b/chrome/common/extensions/docs/server2/api_data_source.py @@ -9,19 +9,7 @@ from file_system import FileNotFoundError from future import Future, All from jsc_view import JSCView, GetEventByNameFromEvents from platform_util import GetPlatforms - - -class _LazySamplesGetter(object): - '''This class is needed so that an extensions API page does not have to fetch - the apps samples page and vice versa. - ''' - - def __init__(self, api_name, samples): - self._api_name = api_name - self._samples = samples - - def get(self, key): - return self._samples.FilterSamples(key, self._api_name) +from samples_data_source import CreateSamplesView class APIDataSource(DataSource): @@ -43,7 +31,7 @@ class APIDataSource(DataSource): # This caches the result of _LoadEventByName. self._event_byname_futures = {} - self._samples = server_instance.samples_data_source_factory.Create(request) + self._request = request def _LoadEventByName(self, platform): '''All events have some members in common. We source their description @@ -84,9 +72,12 @@ class APIDataSource(DataSource): # Parsing samples on the preview server takes seconds and doesn't add # anything. Don't do it. if not IsPreviewServer(): - jsc_view['samples'] = _LazySamplesGetter( - jsc_view['name'], - self._samples) + samples_model = self._platform_bundle.GetSamplesModel(platform) + # Creates an object that lazily gets samples. + jsc_view['samples'] = type('getter', (object,), { + 'get': lambda _, platform: CreateSamplesView( + samples_model.FilterSamples(jsc_view['name']), self._request) + })() return jsc_view return Future(callback=resolve) |