Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(2899)

Unified Diff: chrome/common/extensions/docs/server2/schema_util.py

Issue 385703005: Docserver: Modify doc inlining so all relevant data is present in availability_finder.py (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Add test Created 6 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chrome/common/extensions/docs/server2/schema_util.py
diff --git a/chrome/common/extensions/docs/server2/schema_util.py b/chrome/common/extensions/docs/server2/schema_util.py
index 866591d60002739087a5b2d2d2b16928ec90ca79..9c604023817d4a4c5536e3864b5e7ed5e7271b21 100644
--- a/chrome/common/extensions/docs/server2/schema_util.py
+++ b/chrome/common/extensions/docs/server2/schema_util.py
@@ -54,8 +54,9 @@ def DetectInlineableTypes(schema):
type_['inline_doc'] = True
-def InlineDocs(schema):
+def InlineDocs(schema, remove_nodes):
not at google - send to devlin 2014/07/15 22:43:20 please update this variable as well
'''Replace '$ref's that refer to inline_docs with the json for those docs.
+ If |remove_nodes| is true, then the inlined nodes are removed from the schema.
'''
types = schema.get('types')
if types is None:
@@ -68,11 +69,13 @@ def InlineDocs(schema):
for type_ in types:
if type_.get('inline_doc'):
inline_docs[type_['id']] = type_
- for k in ('description', 'id', 'inline_doc'):
- type_.pop(k, None)
+ if remove_nodes:
+ for k in ('description', 'id', 'inline_doc'):
+ type_.pop(k, None)
else:
types_without_inline_doc.append(type_)
- schema['types'] = types_without_inline_doc
+ if remove_nodes:
+ schema['types'] = types_without_inline_doc
def apply_inline(node):
if isinstance(node, list):
@@ -89,10 +92,11 @@ def InlineDocs(schema):
apply_inline(schema)
-def ProcessSchema(path, file_data, inline=False):
- '''Parses |file_data| using a method determined by checking the extension of
- the file at the given |path|. Then, trims 'nodoc' and if |inline| is given
- and True, handles inlineable types from the parsed schema data.
+def ProcessSchema(path, file_data, remove_inlined_nodes=False):
+ '''Parses |file_data| using a method determined by checking the
+ extension of the file at the given |path|. Then, trims 'nodoc' and if
+ |remove_inlined_nodes| is given and True, removes inlineable types from
+ the parsed schema data.
'''
def trim_and_inline(schema, is_idl=False):
'''Modifies an API schema in place by removing nodes that shouldn't be
@@ -102,10 +106,9 @@ def ProcessSchema(path, file_data, inline=False):
# A return of True signifies that the entire schema should not be
# documented. Otherwise, only nodes that request 'nodoc' are removed.
return None
- if inline:
- if is_idl:
- DetectInlineableTypes(schema)
- InlineDocs(schema)
+ if is_idl:
+ DetectInlineableTypes(schema)
+ InlineDocs(schema, remove_inlined_nodes)
return schema
if path.endswith('.idl'):

Powered by Google App Engine
This is Rietveld 408576698