From 7753d0d6f7d934b9cc5e97d475ae702474be8d39 Mon Sep 17 00:00:00 2001 From: Marcel Otto Date: Wed, 7 Mar 2018 10:16:00 +0100 Subject: [PATCH] Add name to RDF.Serialization formats --- CHANGELOG.md | 11 +++++++++++ lib/rdf/serialization.ex | 9 +++++++++ lib/rdf/serializations/nquads.ex | 1 + lib/rdf/serializations/ntriples.ex | 1 + lib/rdf/serializations/turtle.ex | 1 + 5 files changed, 23 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 809e25c..1d137be 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,17 @@ This project adheres to [Semantic Versioning](http://semver.org/) and [Keep a CHANGELOG](http://keepachangelog.com). +## Unreleased + +### Added + +- `RDF.Serialization`s define an atom name + + +[Compare v0.3.1...HEAD](https://github.com/marcelotto/rdf-ex/compare/v0.3.1...HEAD) + + + ## 0.3.1 - 2018-01-19 ### Added diff --git a/lib/rdf/serialization.ex b/lib/rdf/serialization.ex index a86909f..d531195 100644 --- a/lib/rdf/serialization.ex +++ b/lib/rdf/serialization.ex @@ -31,6 +31,11 @@ defmodule RDF.Serialization do """ @callback id :: RDF.IRI.t + @doc """ + An name atom of the serialization format. + """ + @callback name :: atom + @doc """ The usual file extension for the serialization format. """ @@ -99,6 +104,10 @@ defmodule RDF.Serialization do Module.get_attribute(__MODULE__, :id) do def id, do: @id end + if !Module.defines?(__MODULE__, {:name, 0}) && + Module.get_attribute(__MODULE__, :name) do + def name, do: @name + end if !Module.defines?(__MODULE__, {:extension, 0}) && Module.get_attribute(__MODULE__, :extension) do def extension, do: @extension diff --git a/lib/rdf/serializations/nquads.ex b/lib/rdf/serializations/nquads.ex index 685ce2f..7a09c03 100644 --- a/lib/rdf/serializations/nquads.ex +++ b/lib/rdf/serializations/nquads.ex @@ -18,6 +18,7 @@ defmodule RDF.NQuads do import RDF.Sigils @id ~I + @name :nquads @extension "nq" @content_type "application/n-quads" diff --git a/lib/rdf/serializations/ntriples.ex b/lib/rdf/serializations/ntriples.ex index 2023179..633d47d 100644 --- a/lib/rdf/serializations/ntriples.ex +++ b/lib/rdf/serializations/ntriples.ex @@ -20,6 +20,7 @@ defmodule RDF.NTriples do import RDF.Sigils @id ~I + @name :ntriples @extension "nt" @content_type "application/n-triples" diff --git a/lib/rdf/serializations/turtle.ex b/lib/rdf/serializations/turtle.ex index 5f8e1ca..c2fa38c 100644 --- a/lib/rdf/serializations/turtle.ex +++ b/lib/rdf/serializations/turtle.ex @@ -11,6 +11,7 @@ defmodule RDF.Turtle do import RDF.Sigils @id ~I + @name :turtle @extension "ttl" @content_type "text/turtle"