2016-07-20 25 views
0

ich diese Lösung implementiert haben: https://stackoverflow.com/a/23115778/4631376 (die zweite mit der impliziten Klasse) und ich versuche, „ci“ mit einem String-Argument zu verwenden, anstatt eine ZeichenketteScala: ein String-Argument mit einem impliziten erwarten String-Kontext mit

implicit class CaseInsensitiveRegex(sc: StringContext) { 
    def ci = ("(?i)" + sc.parts.mkString).r 
} 

def Refiner(uid: String) = new ActionRefiner[Input, Output] { 
    override protected def refine[A](request: Input[A]): Future[Either[Result, Output[A]]] = { 
     uid match { 
      case ci"${request.auid}" => Future.successful(Right(new Output[A](request.auid, request))) 
    } 
} 

}

aber es scheint nicht zu Werke, da der String-Kontext "sc" ist leer. und es sollte den Inhalt von "request.auid"

enthalten es funktioniert gut mit Literal-Strings (Senden des Inhalts wie "abcabc").

Gedanken?

+0

Bitte fügen Sie den vollständigen Code ein, um Ihr Problem zusammen mit der erwarteten Eingabe/Ausgabe und allen vorhandenen Fehlermeldungen zu reproduzieren. – Daenyth

Antwort