View Source JetExt.Ecto.URI (jet_ext v0.2.4)

An Ecto type for URI (RFC 3986).

Examples

# cast
iex> cast("https://elixir-lang.org/")
{:ok, %URI{
  fragment: nil,
  host: "elixir-lang.org",
  path: "/",
  port: 443,
  query: nil,
  scheme: "https",
  userinfo: nil
}}

iex> cast("/foo")
{:ok, %URI{
  fragment: nil,
  host: nil,
  path: "/foo",
  port: nil,
  query: nil,
  scheme: nil,
  userinfo: nil
}}

iex> cast(:foo)
:error

iex> cast("/invalid_greater_than_in_path/>")
{:error, part: ">"}

# load
iex> load("https://elixir-lang.org/")
{:ok, %URI{
  fragment: nil,
  host: "elixir-lang.org",
  path: "/",
  port: 443,
  query: nil,
  scheme: "https",
  userinfo: nil
}}

iex> load(URI.new!("https://elixir-lang.org/"))
{:ok, %URI{
  fragment: nil,
  host: "elixir-lang.org",
  path: "/",
  port: 443,
  query: nil,
  scheme: "https",
  userinfo: nil
}}

iex> load(%{})
:error

iex> load(:path)
:error

# dump

iex> dump(URI.new!("https://elixir-lang.org/"))
{:ok, "https://elixir-lang.org/"}

iex> dump(%{})
:error

iex> dump(:path)
:error

Summary

Types