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'): |