Current section
Files
Jump to
Current section
Files
lib/paasaa/data.ex
defmodule Paasaa.Data do
@moduledoc false
def scripts do
"./priv/scripts.json"
|> File.read!()
|> JSX.decode!()
|> Enum.map(fn {name, expr} -> {name, Regex.compile!(expr, "u")} end)
end
def languages do
"./priv/languages.json"
|> File.read!()
|> JSX.decode!()
|> Enum.map(&parse_trigrams/1)
|> Enum.into(%{})
end
defp parse_trigrams({script, langs}), do: {script, parse_trigrams(langs)}
defp parse_trigrams(langs) when is_map(langs) do
Enum.map(langs, fn {lang, trigrams} ->
{lang, parse_trigrams(trigrams)}
end)
end
defp parse_trigrams(trigrams_str) when is_binary(trigrams_str) do
trigrams_str
|> String.split("|")
|> Enum.with_index()
|> Enum.into(%{})
end
end