Upstream version 7.36.149.0
[platform/framework/web/crosswalk.git] / src / third_party / WebKit / Source / build / scripts / name_utilities.py
index fa90ac9..fe026d9 100644 (file)
@@ -60,22 +60,47 @@ def lower_first(name):
 
 
 def upper_first(name):
+    """Return name with first letter or initial acronym uppercased."""
     for acronym in ACRONYMS:
         if name.startswith(acronym.lower()):
             return name.replace(acronym.lower(), acronym, 1)
+    return _upper_first(name)
+
+
+def _upper_first(name):
+    """Return name with first letter uppercased."""
+    if not name:
+        return ''
     return name[0].upper() + name[1:]
 
 
+def camelcase_property_name(property_name):
+    """Convert hyphen-separated-name to UpperCamelCase.
+
+    E.g., '-foo-bar' becomes 'FooBar'.
+    Used for CSS property names.
+    """
+    return ''.join(_upper_first(word) for word in property_name.split('-'))
+
+
 def to_macro_style(name):
     s1 = re.sub('(.)([A-Z][a-z]+)', r'\1_\2', name)
     return re.sub('([a-z0-9])([A-Z])', r'\1_\2', s1).upper()
 
 
 def script_name(entry):
-    return os.path.basename(entry["name"])
+    return os.path.basename(entry['name'])
 
 
 def cpp_name(entry):
-    if entry['ImplementedAs']:
-        return entry['ImplementedAs']
-    return script_name(entry)
+    return entry['ImplementedAs'] or script_name(entry)
+
+
+def enable_conditional_if_endif(code, feature):
+    # Jinja2 filter to generate if/endif directive blocks based on a feature
+    if not feature:
+        return code
+    condition = 'ENABLE(%s)' % feature
+    return ('#if %s\n' % condition +
+            code +
+            '#endif // %s\n' % condition)