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

Side by Side Diff: chrome/common/extensions/docs/server2/handlebar_dict_generator.py

Issue 10689117: Extensions Docs Server: Support APIs with properties (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 8 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 # Copyright (c) 2012 The Chromium Authors. All rights reserved. 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 2 # Use of this source code is governed by a BSD-style license that can be
3 # found in the LICENSE file. 3 # found in the LICENSE file.
4 4
5 import copy 5 import copy
6 import os 6 import os
7 7
8 import third_party.json_schema_compiler.model as model 8 import third_party.json_schema_compiler.model as model
9 9
10 def _RemoveNoDocs(item): 10 def _RemoveNoDocs(item):
(...skipping 28 matching lines...) Expand all
39 """ 39 """
40 def __init__(self, json): 40 def __init__(self, json):
41 clean_json = copy.deepcopy(json) 41 clean_json = copy.deepcopy(json)
42 _RemoveNoDocs(clean_json) 42 _RemoveNoDocs(clean_json)
43 self._namespace = model.Namespace(clean_json, clean_json['namespace']) 43 self._namespace = model.Namespace(clean_json, clean_json['namespace'])
44 44
45 def Generate(self): 45 def Generate(self):
46 return { 46 return {
47 'name': self._namespace.name, 47 'name': self._namespace.name,
48 'types': self._GenerateTypes(self._namespace.types), 48 'types': self._GenerateTypes(self._namespace.types),
49 'functions': self._GenerateFunctions(self._namespace.functions) 49 'functions': self._GenerateFunctions(self._namespace.functions),
50 'properties': self._GenerateProperties(self._namespace.properties)
50 } 51 }
51 52
52 def _GenerateTypes(self, types): 53 def _GenerateTypes(self, types):
53 types_list = [] 54 types_list = []
54 for type_name in types: 55 for type_name in types:
55 types_list.append(self._GenerateType(types[type_name])) 56 types_list.append(self._GenerateType(types[type_name]))
56 return types_list 57 return types_list
57 58
58 def _GenerateType(self, type_): 59 def _GenerateType(self, type_):
59 type_dict = { 60 type_dict = {
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after
107 for property_name in properties: 108 for property_name in properties:
108 properties_list.append(self._GenerateProperty(properties[property_name])) 109 properties_list.append(self._GenerateProperty(properties[property_name]))
109 return properties_list 110 return properties_list
110 111
111 def _GenerateProperty(self, property_): 112 def _GenerateProperty(self, property_):
112 property_dict = { 113 property_dict = {
113 'name': property_.name, 114 'name': property_.name,
114 'type': property_.type_.name.lower(), 115 'type': property_.type_.name.lower(),
115 'optional': property_.optional, 116 'optional': property_.optional,
116 'description': property_.description, 117 'description': property_.description,
117 'properties': self._GenerateProperties(property_.properties) 118 'properties': self._GenerateProperties(property_.properties)
not at google - send to devlin 2012/07/06 02:14:30 we need to add functions here.
cduvall 2012/07/06 20:32:11 Done.
118 } 119 }
not at google - send to devlin 2012/07/06 02:14:30 also need to specify the value at some point.
cduvall 2012/07/06 20:32:11 Done.
119 120
120 if property_.type_ == model.PropertyType.CHOICES: 121 if property_.type_ == model.PropertyType.CHOICES:
121 property_dict['choices'] = [] 122 property_dict['choices'] = []
122 for choice_name in property_.choices: 123 for choice_name in property_.choices:
123 property_dict['choices'].append(self._GenerateProperty( 124 property_dict['choices'].append(self._GenerateProperty(
124 property_.choices[choice_name])) 125 property_.choices[choice_name]))
125 # We keep track of which is last for knowing when to add "or" between 126 # We keep track of which is last for knowing when to add "or" between
126 # choices in templates. 127 # choices in templates.
127 if len(property_dict['choices']) > 0: 128 if len(property_dict['choices']) > 0:
128 property_dict['choices'][-1]['last_choice'] = True 129 property_dict['choices'][-1]['last_choice'] = True
129 elif property_.type_ == model.PropertyType.REF: 130 elif property_.type_ == model.PropertyType.REF:
130 property_dict['link'] = _GetLinkToRefType(self._namespace.name, 131 property_dict['link'] = _GetLinkToRefType(self._namespace.name,
131 property_.ref_type) 132 property_.ref_type)
132 elif property_.type_ == model.PropertyType.ARRAY: 133 elif property_.type_ == model.PropertyType.ARRAY:
133 property_dict['array'] = self._GenerateProperty(property_.item_type) 134 property_dict['array'] = self._GenerateProperty(property_.item_type)
134 else: 135 else:
135 property_dict['simple_type'] = {'type': property_dict['type']} 136 property_dict['simple_type'] = {'type': property_dict['type']}
136 return property_dict 137 return property_dict
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698