summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRocky Madden <git@rockymadden.com>2013-12-31 11:57:10 -0700
committerRocky Madden <git@rockymadden.com>2013-12-31 11:57:10 -0700
commitabd84f7895979a3209422b59296e92f2118b062d (patch)
tree890bb505b56a75d503a33f5752f4fcb3534ce78c
parent09ee8d1438c84e45b3cccf9a205b5234da68afcf (diff)
downloadstringmetric-abd84f7895979a3209422b59296e92f2118b062d.tar.gz
stringmetric-abd84f7895979a3209422b59296e92f2118b062d.tar.bz2
stringmetric-abd84f7895979a3209422b59296e92f2118b062d.zip
Created ignoreAlphaCase transform.
-rw-r--r--core/source/main/scala/com/rockymadden/stringmetric/Transform.scala2
-rw-r--r--core/source/test/scala/com/rockymadden/stringmetric/TransformSpec.scala11
-rwxr-xr-xreadme.md4
3 files changed, 15 insertions, 2 deletions
diff --git a/core/source/main/scala/com/rockymadden/stringmetric/Transform.scala b/core/source/main/scala/com/rockymadden/stringmetric/Transform.scala
index 390c4f2..c2cdace 100644
--- a/core/source/main/scala/com/rockymadden/stringmetric/Transform.scala
+++ b/core/source/main/scala/com/rockymadden/stringmetric/Transform.scala
@@ -65,5 +65,7 @@ object Transform {
val filterUpperCase: StringTransform = (ca) => filter(ca, c => UpperCase.contains(c.toInt))
val filterNotUpperCase: StringTransform = (ca) => filterNot(ca, c => UpperCase.contains(c.toInt))
+
+ val ignoreAlphaCase: StringTransform = (ca) => ca.map(c => if (c >= 65 && c <= 90) (c + 32).toChar else c)
}
}
diff --git a/core/source/test/scala/com/rockymadden/stringmetric/TransformSpec.scala b/core/source/test/scala/com/rockymadden/stringmetric/TransformSpec.scala
index 5b93cfa..2349a6a 100644
--- a/core/source/test/scala/com/rockymadden/stringmetric/TransformSpec.scala
+++ b/core/source/test/scala/com/rockymadden/stringmetric/TransformSpec.scala
@@ -167,4 +167,15 @@ final class TransformSpec extends ScalaTest { "StringTransform" should provide {
}
}
}
+ "ignoreAlphaCase()" when passed {
+ "String" should returns {
+ "transformed String" in {
+ StringTransform.ignoreAlphaCase(
+ ("aBc123" + 0x250.toChar).toCharArray
+ ) should equal (
+ ("abc123" + 0x250.toChar).toCharArray
+ )
+ }
+ }
+ }
}}
diff --git a/readme.md b/readme.md
index 119fd90..2c0b2ea 100755
--- a/readme.md
+++ b/readme.md
@@ -264,9 +264,9 @@ Single filter, so that we only examine alphabetical characters:
---
-Functionally composed filter, so that we only examine uppercase characters:
+Functionally composed filter, so that we only examine alphabetical characters but the case won't matter:
```scala
-val composedTransform = (StringTransform.filterAlpha andThen StringTransform.filterUpperCase)
+val composedTransform = (StringTransform.filterAlpha andThen StringTransform.ignoreAlphaCase)
(MetaphoneAlgorithm withTransform composedTransform).compute("abc123")
(MetaphoneMetric withTransform composedTransform).compare("abc123", "abc456")