io.lemonlabs.uri.encoding.ChainedUriEncoder.scala Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of scala-uri_2.12 Show documentation
Show all versions of scala-uri_2.12 Show documentation
Simple scala library for building and parsing URIs
package io.lemonlabs.uri.encoding
/**
* Date: 28/08/2013
* Time: 21:07
*/
case class ChainedUriEncoder(encoders: Seq[UriEncoder]) extends UriEncoder {
def shouldEncode(ch: Char) = findFirstEncoder(ch).isDefined
def encodeChar(ch: Char) = findFirstEncoder(ch).getOrElse(NoopEncoder).encodeChar(ch)
def findFirstEncoder(ch: Char) = {
encoders.find(_.shouldEncode(ch))
}
override def +(encoder: UriEncoder) = copy(encoders = encoder +: encoders)
}