diff options
author | 2015-08-26 14:53:37 +0000 | |
---|---|---|
committer | 2015-08-27 14:44:20 +0000 | |
commit | b4114cc59508efb5709ca6c36cef1520784b7a0b (patch) | |
tree | c0e462a3fff6d1d5425ab2baef449be9f541abcd /src/main/java/com/google/devtools/build/lib/syntax/MethodLibrary.java | |
parent | c1d54ec8fabdcc6c04fc7eb77e110d29c6015acd (diff) |
Add string.capitalize()
--
MOS_MIGRATED_REVID=101575207
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/syntax/MethodLibrary.java')
-rw-r--r-- | src/main/java/com/google/devtools/build/lib/syntax/MethodLibrary.java | 45 |
1 files changed, 42 insertions, 3 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/syntax/MethodLibrary.java b/src/main/java/com/google/devtools/build/lib/syntax/MethodLibrary.java index e7cbf90a57..93a01e97bf 100644 --- a/src/main/java/com/google/devtools/build/lib/syntax/MethodLibrary.java +++ b/src/main/java/com/google/devtools/build/lib/syntax/MethodLibrary.java @@ -385,6 +385,26 @@ public class MethodLibrary { return result; } + @SkylarkSignature( + name = "capitalize", + objectType = StringModule.class, + returnType = String.class, + doc = + "Returns a copy of the string with its first character capitalized and the rest" + + "lowercased. This method does not support non-ascii characters.", + mandatoryPositionals = {@Param(name = "self", type = String.class, doc = "This string.")} + ) + private static BuiltinFunction capitalize = + new BuiltinFunction("capitalize") { + @SuppressWarnings("unused") + public String invoke(String self) throws EvalException { + if (self.isEmpty()) { + return self; + } + return Character.toUpperCase(self.charAt(0)) + self.substring(1).toLowerCase(); + } + }; + @SkylarkSignature(name = "title", objectType = StringModule.class, returnType = String.class, doc = @@ -1379,9 +1399,28 @@ public class MethodLibrary { + "</pre>") public static final class DictModule {} - public static final List<BaseFunction> stringFunctions = ImmutableList.<BaseFunction>of( - count, endswith, find, index, format, join, lower, partition, replace, rfind, - rindex, rpartition, rsplit, slice, split, startswith, strip, title, upper); + public static final List<BaseFunction> stringFunctions = + ImmutableList.<BaseFunction>of( + capitalize, + count, + endswith, + find, + index, + format, + join, + lower, + partition, + replace, + rfind, + rindex, + rpartition, + rsplit, + slice, + split, + startswith, + strip, + title, + upper); public static final List<BaseFunction> listPureFunctions = ImmutableList.<BaseFunction>of( slice); |