defmodule Cron do def segment(pages, day) do pages |> IO.inspect priors = pages |> Enum.filter(fn page -> (page |> Path.basename) <= day end) successors = pages |> Enum.filter(fn page -> (page |> Path.basename) > day end) [curren, prior] = case priors |> Enum.sort(:desc) do [c, p | _] -> [c, p] [c | _] -> [c, nil] [] -> [nil, nil] # _ -> [nil, nil] end ahead = case successors |> Enum.sort do [a | _] -> a [] -> nil end [prior, curren, ahead] end def accessible(pages) when is_list(pages), do: pages |> Enum.filter(&accessible/1) def accessible("cron/" <> day), do: ( case Compile.mix_env do :prod -> day < (Date.utc_today |> Date.to_string) _ -> true end) def accessible(page), do: true def links(pages), do: pages |> Enum.map(&link/1) def link(nil), do: nil def link(page), do: "/" <> page end