Index: tools/json_schema_compiler/js_externs_generator.py |
diff --git a/tools/json_schema_compiler/js_externs_generator.py b/tools/json_schema_compiler/js_externs_generator.py |
index 786f05838d8f7390c6a0866fc81265ec774426d9..b76c847ac66bc523e02b5957d42453647ad7a182 100644 |
--- a/tools/json_schema_compiler/js_externs_generator.py |
+++ b/tools/json_schema_compiler/js_externs_generator.py |
@@ -14,6 +14,7 @@ from schema_util import * |
import os |
from datetime import datetime |
+import re |
LICENSE = ("""// Copyright %s The Chromium Authors. All rights reserved. |
// Use of this source code is governed by a BSD-style license that can be |
@@ -71,8 +72,22 @@ class _Generator(object): |
.Append(self._GenerateSeeLink('type', js_type.simple_name)) |
.Eblock(' */')) |
c.Append('chrome.%s.%s = {' % (self._namespace.name, js_type.name)) |
+ |
+ def get_property_name(e): |
Dan Beam
2015/04/28 00:21:46
nit: def scare_small_children(e):
https://google-s
Devlin
2015/04/28 00:25:08
Haha I don't think I've ever seen that (phrasing,
|
+ # Enum properties are normified to be in ALL_CAPS_STYLE. |
+ # Assume enum '1ring-rulesThemAll'. |
+ # Transform to '1ring-rules_Them_All'. |
+ e = re.sub(r'([a-z])([A-Z])', r'\1_\2', e) |
+ # Transform to '1ring_rules_Them_All'. |
+ e = re.sub(r'\W', '_', e) |
+ # Transform to '_1ring_rules_Them_All'. |
+ e = re.sub(r'^(\d)', r'_\1', e) |
+ # Transform to '_1RING_RULES_THEM_ALL'. |
+ return e.upper() |
+ |
c.Append('\n'.join( |
- [" %s: '%s'," % (v.name, v.name) for v in js_type.enum_values])) |
+ [" %s: '%s'," % (get_property_name(v.name), v.name) |
+ for v in js_type.enum_values])) |
c.Append('};') |
return c |