legendary-doc-site/apps/content/lib/attachment.ex

41 lines
907 B
Elixir
Raw Normal View History

2020-07-20 22:04:04 +00:00
defmodule Content.Attachment do
@moduledoc """
Helpers for dealing with "attachment"-type posts, which are generally media
uploaded to the site e.g. images.
"""
alias Content.Post
def dimensions(attachment) do
meta =
attachment
|> Post.metas_map
deserialization_results =
meta["_wp_attachment_metadata"]
|> PhpSerializer.unserialize
case deserialization_results do
{:ok, info} ->
%{
width: info |> Enum.find(fn {key, _} -> key == "width" end) |> elem(1),
height: info |> Enum.find(fn {key, _} -> key == "height" end) |> elem(1)
}
{:error, _} ->
nil
end
end
def vertical?(attachment) do
case dimensions(attachment) do
%{width: width, height: height} ->
if width < height do
true
else
false
end
_ ->
false
end
end
end