lib/helpers.ex

defmodule Breddit.Helpers do
  def format_upvotes(upvotes) when is_number(upvotes) and upvotes > 1_000,
    do:
      upvotes
      |> Kernel./(1000)
      |> Float.round()
      |> drop_whole_floats()
      |> to_string()
      |> Kernel.<>("k")

  def format_upvotes(upvotes), do: "#{upvotes}"

  defp drop_whole_floats(float) do
    {whole, remain} = float |> Float.to_string() |> Integer.parse()
    if remain == ".0", do: whole, else: float
  end
end