diff options
author | Som Snytt <som.snytt@gmail.com> | 2015-06-17 13:10:48 -0700 |
---|---|---|
committer | Som Snytt <som.snytt@gmail.com> | 2015-06-18 20:22:41 -0700 |
commit | 1a9ffaa895e37c141561783c8596810c26d69d6a (patch) | |
tree | b159992ddf1c9ce574f4733cf79741eecd76c33e /src/library | |
parent | 305dd96c08041e9fa096cd56dfc4de80284e6fba (diff) | |
download | scala-1a9ffaa895e37c141561783c8596810c26d69d6a.tar.gz scala-1a9ffaa895e37c141561783c8596810c26d69d6a.tar.bz2 scala-1a9ffaa895e37c141561783c8596810c26d69d6a.zip |
SI-9206 BooleanProp if set and not untrue
Previously, handy `sys.BooleanProp.keyExists` ignored the
property value. While trying not to make any real estate puns,
this commit will let it go false if a value is supplied that
is not true in the usual Java sense. But what is truth?
Allows `scala -Dscala.color=off`, for example.
Diffstat (limited to 'src/library')
-rw-r--r-- | src/library/scala/sys/BooleanProp.scala | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/src/library/scala/sys/BooleanProp.scala b/src/library/scala/sys/BooleanProp.scala index 74b0a9077b..e5e4668edb 100644 --- a/src/library/scala/sys/BooleanProp.scala +++ b/src/library/scala/sys/BooleanProp.scala @@ -63,12 +63,13 @@ object BooleanProp { def valueIsTrue[T](key: String): BooleanProp = new BooleanPropImpl(key, _.toLowerCase == "true") /** As an alternative, this method creates a BooleanProp which is true - * if the key exists in the map. This way -Dfoo.bar is enough to be - * considered true. + * if the key exists in the map and is not assigned a value other than "true", + * compared case-insensitively, or the empty string. This way -Dmy.property + * results in a true-valued property, but -Dmy.property=false does not. * * @return A BooleanProp with a liberal truth policy */ - def keyExists[T](key: String): BooleanProp = new BooleanPropImpl(key, _ => true) + def keyExists[T](key: String): BooleanProp = new BooleanPropImpl(key, s => s == "" || s.equalsIgnoreCase("true")) /** A constant true or false property which ignores all method calls. */ |