Chromium Code Reviews| 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 91dcfc34ba3a8447d37c0dff1fd74e29cf12307f..3eaed9c273308be9cfbcf0ef192d6c23a515c9d9 100644 |
| --- a/chrome/common/extensions/docs/server2/api_data_source.py |
| +++ b/chrome/common/extensions/docs/server2/api_data_source.py |
| @@ -171,7 +171,7 @@ class _APINodeCursor(object): |
| return None |
| def _LookupAvailability(self, lookup_path): |
| - '''Runs all the lookup checks on self._lookup_path and |
| + '''Runs all the lookup checks on |lookup_path| and |
| returns the node availability if found, None otherwise. |
| ''' |
| for lookup in (self._LookupNodeAvailability, |
| @@ -210,6 +210,20 @@ class _APINodeCursor(object): |
| return 'properties' |
| raise AssertionError('Could not classify node %s' % self) |
| + def GetDeprecated(self): |
| + '''Returns when this node became deprecated, or None if it |
| + is not deprecated. |
| + ''' |
| + deprecated_path = self._lookup_path + ['deprecated'] |
| + for lookup in (self._LookupNodeAvailability, |
| + self._CheckNamespacePrefix): |
| + node_availability = lookup(deprecated_path) |
| + if node_availability is not None: |
| + return node_availability |
| + if 'callback' in self._lookup_path: |
| + return self._CheckEventCallback(deprecated_path) |
| + return None |
| + |
| def GetAvailability(self): |
| '''Returns availability information for this node. |
| ''' |
| @@ -555,16 +569,10 @@ class _JSCModel(object): |
| return intro_rows |
| - def _GetAvailabilityTemplate(self, status=None, version=None, scheduled=None): |
| - '''Returns an object that the templates use to display availability |
| + def _CreateAvailabilityTemplate(self, status, scheduled, version): |
| + '''Returns an object suitable for use in templates to display availability |
| information. |
| ''' |
| - if status is None: |
| - availability_info = self._current_node.GetAvailability() |
| - if availability_info is None: |
| - return None |
| - status = availability_info.channel |
| - version = availability_info.version |
| return { |
| 'partial': self._template_cache.GetFromFile( |
| '%sintro_tables/%s_message.html' % (PRIVATE_TEMPLATES, status)).Get(), |
| @@ -572,6 +580,24 @@ class _JSCModel(object): |
| 'version': version |
| } |
| + def _GetAvailabilityTemplate(self): |
| + '''Gets availability for the current node and returns an appropriate |
| + template object. |
| + ''' |
| + # Displaying deprecated status takes precedence over when the API |
| + # became stable. |
| + availability_info = self._current_node.GetDeprecated() |
| + if availability_info is not None: |
| + status = 'deprecated' |
| + else: |
| + availability_info = self._current_node.GetAvailability() |
| + if availability_info is None: |
| + return None |
| + status = availability_info.channel_info.channel |
| + scheduled = availability_info.scheduled |
| + version = availability_info.channel_info.version |
|
not at google - send to devlin
2014/07/17 21:39:21
inline |scheduled| and |version| ?
|
| + return self._CreateAvailabilityTemplate(status, scheduled, version) |
| + |
| def _GetIntroDescriptionRow(self): |
| ''' Generates the 'Description' row data for an API intro table. |
| ''' |
| @@ -587,18 +613,16 @@ class _JSCModel(object): |
| ''' |
| if self._IsExperimental(): |
| status = 'experimental' |
| - version = None |
| scheduled = None |
| + version = None |
| else: |
| status = self._availability.channel_info.channel |
| - version = self._availability.channel_info.version |
| scheduled = self._availability.scheduled |
| + version = self._availability.channel_info.version |
| return { |
| 'title': 'Availability', |
| 'content': [ |
| - self._GetAvailabilityTemplate(status=status, |
| - version=version, |
| - scheduled=scheduled) |
| + self._CreateAvailabilityTemplate(status, scheduled, version) |
| ] |
| } |