summaryrefslogtreecommitdiffstats
path: root/chrome/common/extensions/docs/server2/api_data_source.py
diff options
context:
space:
mode:
authorahernandez.miralles@gmail.com <ahernandez.miralles@gmail.com@0039d316-1c4b-4281-b951-d872f2087c98>2014-08-07 22:05:04 +0000
committerahernandez.miralles@gmail.com <ahernandez.miralles@gmail.com@0039d316-1c4b-4281-b951-d872f2087c98>2014-08-07 22:05:04 +0000
commit1d0e548a86cae4b6274fe9eef38b96a8e49aa12a (patch)
treeb27dc9eb3319da3c9eaa93bb30493b6a6f63aac5 /chrome/common/extensions/docs/server2/api_data_source.py
parent177489835f6e988ff03548e579b50013785007e5 (diff)
downloadchromium_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.py25
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)