summaryrefslogblamecommitdiff
path: root/lib/irc/message.ex
blob: 3927079f7f29b361293c8f406c5526b487252890 (plain) (tree)



























                                                                
defmodule Nola.Irc.Message do

  @max_chars 440

  def splitlong(string, max_chars \\ 440)

  def splitlong(string, max_chars) when is_list(string) do
    Enum.map(string, fn(s) -> splitlong(s, max_chars) end)
    |> List.flatten()
  end

  def splitlong(string, max_chars) do
    string
    |> String.codepoints
    |> Enum.chunk_every(max_chars)
    |> Enum.map(&Enum.join/1)
  end

  def splitlong_with_prefix(string, prefix, max_chars \\ 440) do
    prefix = "#{prefix} "
    max_chars = max_chars - (length(String.codepoints(prefix)))
    string
    |> String.codepoints
    |> Enum.chunk_every(max_chars)
    |> Enum.map(fn(line) -> prefix <> Enum.join(line) end)
  end

end