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..eef1d8afe0cad9fa70020e7d92fd2efeb09b8605 100644 |
--- a/chrome/common/extensions/docs/server2/schema_util.py |
+++ b/chrome/common/extensions/docs/server2/schema_util.py |
@@ -54,8 +54,10 @@ def DetectInlineableTypes(schema): |
type_['inline_doc'] = True |
-def InlineDocs(schema): |
+def InlineDocs(schema, retain_inlined_types): |
'''Replace '$ref's that refer to inline_docs with the json for those docs. |
+ If |retain_inlined_types| is False, then the inlined nodes are removed |
+ from the schema. |
''' |
types = schema.get('types') |
if types is None: |
@@ -68,11 +70,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 not retain_inlined_types: |
+ 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 not retain_inlined_types: |
+ schema['types'] = types_without_inline_doc |
def apply_inline(node): |
if isinstance(node, list): |
@@ -89,10 +93,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, retain_inlined_types=True): |
not at google - send to devlin
2014/07/16 16:17:15
Can this be default-False?
It looks like you'd ju
|
+ '''Parses |file_data| using a method determined by checking the |
+ extension of the file at the given |path|. Then, trims 'nodoc' and if |
+ |retain_inlined_types| is given and False, 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 +107,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, retain_inlined_types) |
return schema |
if path.endswith('.idl'): |