mirror of
https://github.com/ash-project/ash_blog.git
synced 2024-09-20 05:12:52 +12:00
29 lines
654 B
Elixir
29 lines
654 B
Elixir
|
defmodule AshBlog.FileNamer do
|
||
|
def name_file(changeset) do
|
||
|
name =
|
||
|
case Ash.Changeset.get_attribute(changeset, :title) ||
|
||
|
Ash.Changeset.get_attribute(changeset, :name) do
|
||
|
nil ->
|
||
|
nil
|
||
|
|
||
|
name ->
|
||
|
name
|
||
|
|> String.replace(~r/[^a-zA-Z0-9 _]/, "")
|
||
|
|> String.replace(~r/[^a-zA-Z0-9]/, "-")
|
||
|
|> String.trim("-")
|
||
|
end
|
||
|
|
||
|
if name do
|
||
|
Calendar.strftime(
|
||
|
DateTime.utc_now(),
|
||
|
Path.join(["%Y", "%Y-%m-%d-#{name}.md"])
|
||
|
)
|
||
|
else
|
||
|
Calendar.strftime(
|
||
|
DateTime.utc_now(),
|
||
|
Path.join(["%Y", "%Y-%m-%d.md"])
|
||
|
)
|
||
|
end
|
||
|
end
|
||
|
end
|