Skip to content

Instantly share code, notes, and snippets.

@radzserg
Last active September 26, 2016 15:51
Show Gist options
  • Select an option

  • Save radzserg/fdcf22bab67f0c2b31c311c031c1acdd to your computer and use it in GitHub Desktop.

Select an option

Save radzserg/fdcf22bab67f0c2b31c311c031c1acdd to your computer and use it in GitHub Desktop.
defmodule App.ModelHelpers.HasImageHelper do
alias App.Repo
alias App.Image
defmacro __using__(_) do
quote do
def get_image_url(model, field, base_path \\ "", default_image \\ nil) do
field = if is_bitstring(field), do: String.to_atom(field), else: field
image_id = Map.get(model, field)
unless is_nil(image_id) do
image = Repo.get!(Image, image_id)
Image.url(image)
else
get_default_image(default_image)
end
end
def has_image?(model, field) do
!is_nil(model.field)
end
#defp get_default_image(default_image) when is_function(default_image), do: default_image()
defp get_default_image(default_image), do: default_image
end
end
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment