OCaml library for JSONfeed parsing and creation

code cleanups

Changed files
+18 -39
lib
+1 -3
lib/cito.ml
···
let jsont =
let kind = "CiTO intent" in
let doc = "A Citation Typing Ontology intent annotation" in
-
let dec = of_string in
-
let enc = to_string in
-
Jsont.map ~kind ~doc ~dec ~enc Jsont.string
+
Jsont.map ~kind ~doc ~dec:of_string ~enc:to_string Jsont.string
+17 -36
lib/item.ml
···
}
in
-
(* Encoders to extract fields from item *)
-
let enc_id t = t.id in
-
let enc_content_html t = content_html t in
-
let enc_content_text t = content_text t in
-
let enc_url t = t.url in
-
let enc_external_url t = t.external_url in
-
let enc_title t = t.title in
-
let enc_summary t = t.summary in
-
let enc_image t = t.image in
-
let enc_banner_image t = t.banner_image in
-
let enc_date_published t = t.date_published in
-
let enc_date_modified t = t.date_modified in
-
let enc_authors t = t.authors in
-
let enc_tags t = t.tags in
-
let enc_language t = t.language in
-
let enc_attachments t = t.attachments in
-
let enc_references t = t.references in
-
let enc_unknown t = t.unknown in
-
Jsont.Object.map ~kind ~doc make_from_json
-
|> Jsont.Object.mem "id" Jsont.string ~enc:enc_id
-
|> Jsont.Object.opt_mem "content_html" Jsont.string ~enc:enc_content_html
-
|> Jsont.Object.opt_mem "content_text" Jsont.string ~enc:enc_content_text
-
|> Jsont.Object.opt_mem "url" Jsont.string ~enc:enc_url
-
|> Jsont.Object.opt_mem "external_url" Jsont.string ~enc:enc_external_url
-
|> Jsont.Object.opt_mem "title" Jsont.string ~enc:enc_title
-
|> Jsont.Object.opt_mem "summary" Jsont.string ~enc:enc_summary
-
|> Jsont.Object.opt_mem "image" Jsont.string ~enc:enc_image
-
|> Jsont.Object.opt_mem "banner_image" Jsont.string ~enc:enc_banner_image
-
|> Jsont.Object.opt_mem "date_published" Rfc3339.jsont ~enc:enc_date_published
-
|> Jsont.Object.opt_mem "date_modified" Rfc3339.jsont ~enc:enc_date_modified
-
|> Jsont.Object.opt_mem "authors" (Jsont.list Author.jsont) ~enc:enc_authors
-
|> Jsont.Object.opt_mem "tags" (Jsont.list Jsont.string) ~enc:enc_tags
-
|> Jsont.Object.opt_mem "language" Jsont.string ~enc:enc_language
+
|> Jsont.Object.mem "id" Jsont.string ~enc:id
+
|> Jsont.Object.opt_mem "content_html" Jsont.string ~enc:content_html
+
|> Jsont.Object.opt_mem "content_text" Jsont.string ~enc:content_text
+
|> Jsont.Object.opt_mem "url" Jsont.string ~enc:url
+
|> Jsont.Object.opt_mem "external_url" Jsont.string ~enc:external_url
+
|> Jsont.Object.opt_mem "title" Jsont.string ~enc:title
+
|> Jsont.Object.opt_mem "summary" Jsont.string ~enc:summary
+
|> Jsont.Object.opt_mem "image" Jsont.string ~enc:image
+
|> Jsont.Object.opt_mem "banner_image" Jsont.string ~enc:banner_image
+
|> Jsont.Object.opt_mem "date_published" Rfc3339.jsont ~enc:date_published
+
|> Jsont.Object.opt_mem "date_modified" Rfc3339.jsont ~enc:date_modified
+
|> Jsont.Object.opt_mem "authors" (Jsont.list Author.jsont) ~enc:authors
+
|> Jsont.Object.opt_mem "tags" (Jsont.list Jsont.string) ~enc:tags
+
|> Jsont.Object.opt_mem "language" Jsont.string ~enc:language
|> Jsont.Object.opt_mem "attachments"
(Jsont.list Attachment.jsont)
-
~enc:enc_attachments
+
~enc:attachments
|> Jsont.Object.opt_mem "_references"
(Jsont.list Reference.jsont)
-
~enc:enc_references
+
~enc:references
|> Jsont.Object.opt_mem "_extensions" Jsont.json_object ~enc:(fun _t -> None)
-
|> Jsont.Object.keep_unknown Jsont.json_mems ~enc:enc_unknown
+
|> Jsont.Object.keep_unknown Jsont.json_mems ~enc:unknown
|> Jsont.Object.finish