Signal drop!
Relay (operand.online) is unreachable.
Usually, a dropped signal means an upgrade is happening. Hold on!
Sorry, no connección.
Hang in there while we get back on track
gram:op
> ./lib/press.ex
Lenses
(coming soon!)
defmodule Press do
defmodule NotFoundError, do: defexception [:message, plug_status: 404]
def address(scheme), do: "priv/#{scheme}/*.md"
def query(scheme) do query(scheme, true) end
def query(scheme, require_public) do
Application.app_dir(:op, scheme.address)
|> Path.wildcard
|> Enum.map(&parse/1)
|> Enum.sort_by(&hd/1)
|> Enum.reverse
|> Enum.map(&scheme.read/1)
|> Enum.filter(& if require_public, do: &1.public, else: true)
|> Enum.with_index
|> Enum.map(fn {node, n} -> %{node | sequence: n} end)
end
def query_by_key!(scheme, key) do
Enum.find(query(scheme), &(&1.key == key)) ||
raise NotFoundError, "no page uses key `#{key}`."
end
def query_by_label!(scheme, label) do
case Enum.filter(query(scheme), &(label in &1.labels)) do
[] -> raise NotFoundError, "No pages are labeled `#{label}`."
pages -> pages
end
end
def parse(node) do
[clock, key] = node
|> Path.rootname
|> Path.split
|> List.last
|> String.split(".", parts: 2)
[clock, key, node]
end
# def parse_clock(phrase) do
# case phrase |> IO.inspect |> String.length do
# 10 -> (phrase)
# 7 -> (phrase <> "-01")
# 4 -> (phrase <> "-01-01")
# end
# end
end