aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib/syntax/MethodLibrary.java
diff options
context:
space:
mode:
authorGravatar Laurent Le Brun <laurentlb@google.com>2015-08-26 14:53:37 +0000
committerGravatar Philipp Wollermann <philwo@google.com>2015-08-27 14:44:20 +0000
commitb4114cc59508efb5709ca6c36cef1520784b7a0b (patch)
treec0e462a3fff6d1d5425ab2baef449be9f541abcd /src/main/java/com/google/devtools/build/lib/syntax/MethodLibrary.java
parentc1d54ec8fabdcc6c04fc7eb77e110d29c6015acd (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.java45
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);