aboutsummaryrefslogtreecommitdiff
path: root/yamlesque-spray-json/src/main/scala/formats.scala
diff options
context:
space:
mode:
Diffstat (limited to 'yamlesque-spray-json/src/main/scala/formats.scala')
-rw-r--r--yamlesque-spray-json/src/main/scala/formats.scala44
1 files changed, 0 insertions, 44 deletions
diff --git a/yamlesque-spray-json/src/main/scala/formats.scala b/yamlesque-spray-json/src/main/scala/formats.scala
deleted file mode 100644
index 81f86d2..0000000
--- a/yamlesque-spray-json/src/main/scala/formats.scala
+++ /dev/null
@@ -1,44 +0,0 @@
-package yamlesque
-
-import spray.json._
-
-trait JsonYamlFormats {
-
- implicit def jsonToYamlReader[A](
- implicit jsReader: JsonReader[A]): YamlReader[A] = new YamlReader[A] {
- override def read(yaml: YamlValue): A =
- jsReader.read(JsonFormats.yamlToJson(yaml))
- }
-
- implicit def jsonToYamlWriter[A](
- implicit jsWriter: JsonWriter[A]): YamlWriter[A] = new YamlWriter[A] {
- override def write(a: A): YamlValue =
- JsonFormats.jsonToYaml(jsWriter.write(a))
- }
-
-}
-
-object JsonFormats {
-
- def jsonToYaml(js: JsValue): YamlValue = js match {
- case JsNull => YamlEmpty
- case JsNumber(number) => YamlScalar(number.toString)
- case JsBoolean(value) => YamlScalar(value.toString)
- case JsString(value) => YamlScalar(value)
- case JsArray(elements) => YamlSequence(elements.map(jsonToYaml _))
- case JsObject(fields) => YamlMapping(fields.mapValues(jsonToYaml _))
- }
-
- val JsNumberPattern = """([-+]?[0-9]*\.?[0-9]+(?:[eE][-+]?[0-9]+)?)""".r
-
- def yamlToJson(yaml: YamlValue): JsValue = yaml match {
- case YamlEmpty => JsNull
- case YamlScalar("true") => JsTrue
- case YamlScalar("false") => JsFalse
- case YamlScalar(JsNumberPattern(x)) => JsNumber(x.toDouble)
- case YamlScalar(x) => JsString(x)
- case YamlSequence(elements) => JsArray(elements.map(yamlToJson))
- case YamlMapping(fields) => JsObject(fields.mapValues(yamlToJson))
- }
-
-}