1 # Copyright (c) 2012 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.
8 from data_source
import DataSource
9 from extensions_paths
import EXAMPLES
10 from future
import All
, Future
11 from jsc_view
import CreateSamplesView
12 from platform_util
import GetPlatforms
15 class SamplesDataSource(DataSource
):
16 '''Constructs a list of samples and their respective files and api calls.
18 def __init__(self
, server_instance
, request
):
19 self
._platform
_bundle
= server_instance
.platform_bundle
20 self
._request
= request
22 def _GetImpl(self
, platform
):
23 cache
= self
._platform
_bundle
.GetSamplesModel(platform
).GetCache()
24 create_view
= lambda samp_list
: CreateSamplesView(samp_list
, self
._request
)
25 return cache
.GetFromFileListing('' if platform
== 'apps'
26 else EXAMPLES
).Then(create_view
)
28 def get(self
, platform
):
29 return self
._GetImpl
(platform
).Get()
32 return All(self
._GetImpl
(platform
) for platform
in GetPlatforms())