core: blank node sigil

This commit is contained in:
Marcel Otto 2017-05-19 17:19:06 +02:00
parent b713361065
commit 34f6a0e28b
2 changed files with 21 additions and 0 deletions

View file

@ -16,6 +16,21 @@ defmodule RDF.Sigils do
Macro.escape(RDF.uri(iri))
end
@doc ~S"""
Handles the sigil `~B` for blank nodes.
## Examples
iex> import RDF.Sigils
iex> ~B<foo>
RDF.bnode("foo")
"""
defmacro sigil_B({:<<>>, _, [bnode]}, []) when is_binary(bnode) do
Macro.escape(RDF.BlankNode.new(bnode))
end
@doc ~S"""
Handles the sigil `~L` for plain Literals.

View file

@ -11,6 +11,12 @@ defmodule RDF.SigilsTest do
end
end
describe "Blank node sigil without interpolation" do
test "creating a blank node" do
assert ~B<foo> == RDF.bnode("foo")
end
end
describe "Literal sigil without interpolation" do
test "creating a plain Literal" do
assert ~L"foo" == RDF.literal("foo")