summaryrefslogtreecommitdiff
path: root/core
diff options
context:
space:
mode:
authorRocky Madden <git@rockymadden.com>2012-11-18 10:53:47 -0700
committerRocky Madden <git@rockymadden.com>2012-11-18 10:53:47 -0700
commit3dede8d6fafed95dd3873f9548a92ff8131f3adc (patch)
tree62c1db4b00b27b96f2d0d2c4578524144b83d615 /core
parentaf6be5c8fa6f0663f685cfc6cca1790b523955f9 (diff)
downloadstringmetric-3dede8d6fafed95dd3873f9548a92ff8131f3adc.tar.gz
stringmetric-3dede8d6fafed95dd3873f9548a92ff8131f3adc.tar.bz2
stringmetric-3dede8d6fafed95dd3873f9548a92ff8131f3adc.zip
Minor code clean up.
Diffstat (limited to 'core')
-rwxr-xr-xcore/source/core/scala/org/hashtree/stringmetric/phonetic/NysiisAlgorithm.scala24
1 files changed, 13 insertions, 11 deletions
diff --git a/core/source/core/scala/org/hashtree/stringmetric/phonetic/NysiisAlgorithm.scala b/core/source/core/scala/org/hashtree/stringmetric/phonetic/NysiisAlgorithm.scala
index b33081d..c2218dc 100755
--- a/core/source/core/scala/org/hashtree/stringmetric/phonetic/NysiisAlgorithm.scala
+++ b/core/source/core/scala/org/hashtree/stringmetric/phonetic/NysiisAlgorithm.scala
@@ -109,16 +109,16 @@ object NysiisAlgorithm extends StringAlgorithm with FilterableStringAlgorithm {
if (ca.length == 0) (Array.empty[Char], ca)
else
ca.head match {
- case 'm' if (ca.length >= 3 && (ca(1) == 'a' && ca(2) == 'c')) =>
- (Array('m', 'c'), ca.takeRight(ca.length - 3))
- case 's' if (ca.length >= 3 && (ca(1) == 'c' && ca(2) == 'h')) =>
- (Array('s', 's'), ca.takeRight(ca.length - 3))
- case 'p' if (ca.length >= 2 && (ca(1) == 'h' || ca(1) == 'f')) =>
- (Array('f', 'f'), ca.takeRight(ca.length - 2))
case 'k' if (ca.length >= 2 && ca(1) == 'n') =>
(Array('n', 'n'), ca.takeRight(ca.length - 2))
case 'k' =>
(Array('c'), ca.tail)
+ case 'm' if (ca.length >= 3 && (ca(1) == 'a' && ca(2) == 'c')) =>
+ (Array('m', 'c'), ca.takeRight(ca.length - 3))
+ case 'p' if (ca.length >= 2 && (ca(1) == 'h' || ca(1) == 'f')) =>
+ (Array('f', 'f'), ca.takeRight(ca.length - 2))
+ case 's' if (ca.length >= 3 && (ca(1) == 'c' && ca(2) == 'h')) =>
+ (Array('s', 's'), ca.takeRight(ca.length - 3))
case _ => (Array(ca.head), ca.tail)
}
}
@@ -127,12 +127,14 @@ object NysiisAlgorithm extends StringAlgorithm with FilterableStringAlgorithm {
if (ca.length >= 2) {
val l = ca(ca.length - 1)
val lm1 = ca(ca.length - 2)
+ lazy val take = ca.take(ca.length - 2)
- if ((l == 't' && (lm1 == 'd' || lm1 == 'r' || lm1 == 'n')) || (l == 'd' && (lm1 == 'r' || lm1 == 'n')))
- (ca.take(ca.length - 2), Array('d'))
- else if (l == 'e' && (lm1 == 'i' || lm1 == 'e'))
- (ca.take(ca.length - 2), Array('y'))
- else (ca, Array.empty[Char])
+ l match {
+ case 'd' if (lm1 == 'r' || lm1 == 'n') => (take, Array('d'))
+ case 'e' if (lm1 == 'i' || lm1 == 'e') => (take, Array('y'))
+ case 't' if (lm1 == 'd' || lm1 == 'r' || lm1 == 'n') => (take, Array('d'))
+ case _ => (ca, Array.empty[Char])
+ }
} else (ca, Array.empty[Char])
}
} \ No newline at end of file