Add top-level aliases for some ambiguous cases

This commit is contained in:
Marcel Otto 2018-09-15 00:34:09 +02:00
parent fa7e214985
commit b6db74e686
2 changed files with 13 additions and 7 deletions

View file

@ -129,6 +129,8 @@ defmodule RDF do
defdelegate string(value, opts), to: RDF.String, as: :new
defdelegate lang_string(value), to: RDF.LangString, as: :new
defdelegate lang_string(value, opts), to: RDF.LangString, as: :new
defdelegate langString(value), to: RDF.LangString, as: :new
defdelegate langString(value, opts), to: RDF.LangString, as: :new
defdelegate boolean(value), to: RDF.Boolean, as: :new
defdelegate boolean(value, opts), to: RDF.Boolean, as: :new
defdelegate integer(value), to: RDF.Integer, as: :new
@ -143,6 +145,10 @@ defmodule RDF do
defdelegate time(value, opts), to: RDF.Time, as: :new
defdelegate date_time(value), to: RDF.DateTime, as: :new
defdelegate date_time(value, opts), to: RDF.DateTime, as: :new
defdelegate dateTime(value), to: RDF.DateTime, as: :new
defdelegate dateTime(value, opts), to: RDF.DateTime, as: :new
defdelegate datetime(value), to: RDF.DateTime, as: :new
defdelegate datetime(value, opts), to: RDF.DateTime, as: :new
for term <- ~w[type subject predicate object first rest value]a do
defdelegate unquote(term)(), to: RDF.NS.RDF
@ -159,5 +165,5 @@ defmodule RDF do
defdelegate langString(), to: RDF.NS.RDF
defdelegate unquote(nil)(), to: RDF.NS.RDF
defdelegate __base_iri__(), to: RDF.NS.RDF
defdelegate __base_iri__(), to: RDF.NS.RDF
end

View file

@ -22,12 +22,12 @@ defmodule RDF.DateTime do
def convert(value, opts) when is_binary(value) do
case DateTime.from_iso8601(value) do
{:ok, date_time, _} -> convert(date_time, opts)
{:ok, datetime, _} -> convert(datetime, opts)
{:error, :missing_offset} ->
case NaiveDateTime.from_iso8601(value) do
{:ok, date_time} -> convert(date_time, opts)
_ -> super(value, opts)
{:ok, datetime} -> convert(datetime, opts)
_ -> super(value, opts)
end
{:error, :invalid_time} ->
@ -93,9 +93,9 @@ defmodule RDF.DateTime do
def tz(%Literal{value: %NaiveDateTime{}}), do: ""
def tz(datetime_literal) do
if valid?(datetime_literal) do
datetime_literal
def tz(date_time_literal) do
if valid?(date_time_literal) do
date_time_literal
|> lexical()
|> RDF.DateTimeUtils.tz()
end