Sha256: bedb1179eeb1008672dbd02d7ab4de1de93ebb9c1c67d6a9b8f5b6dd40dc65de
Contents?: true
Size: 661 Bytes
Versions: 327
Compression:
Stored size: 661 Bytes
Contents
defmodule CryptoSquare do @doc """ Encode string square methods ## Examples iex> CryptoSquare.encode("abcd") "ac bd" """ @spec encode(String.t) :: String.t def encode(""), do: "" def encode(str) do normalized = normalize_string(str) section_length = normalized |> byte_size |> :math.sqrt |> Float.ceil |> trunc normalized |> String.graphemes |> Enum.chunk(section_length, section_length, List.duplicate("", section_length)) |> List.zip |> Enum.map(&Tuple.to_list/1) |> Enum.join(" ") end defp normalize_string(str) do str |> String.downcase |> String.replace(~r/[^a-z0-9]/, "") end end
Version data entries
327 entries across 327 versions & 1 rubygems