Skip to content

Instantly share code, notes, and snippets.

@technicalcapt
Created August 13, 2017 03:09
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save technicalcapt/7f61784ff135620d08329c7e1c9fe0e2 to your computer and use it in GitHub Desktop.
Save technicalcapt/7f61784ff135620d08329c7e1c9fe0e2 to your computer and use it in GitHub Desktop.
defmodule MyApp.TimestampRange do
@behaviour Ecto.Type
def type, do: :tsrange
def cast([lower, upper]) do
{:ok, [lower, upper]}
end
def cast(_), do: :error
def load(%Postgrex.Range{lower: lower, upper: nil}) do
{:ok, [lower, nil]}
end
def load(%Postgrex.Range{lower: lower, upper: upper}) do
{:ok, [lower, upper]}
end
def dump([lower, upper]) do
{:ok, %Postgrex.Range{lower: lower, upper: upper, upper_inclusive: false}}
end
def dump(_), do: :error
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment