Current section
12 Versions
Jump to
Current section
12 Versions
Compare versions
3
files changed
+39
additions
-6
deletions
| @@ -3,9 +3,9 @@ | |
| 3 3 | {<<"description">>,<<"Natural language detection">>}. |
| 4 4 | {<<"elixir">>,<<"~> 1.7">>}. |
| 5 5 | {<<"files">>, |
| 6 | - [<<"lib/paasaa.ex">>,<<"priv">>,<<"priv/languages.json">>, |
| 7 | - <<"priv/scripts.json">>,<<"priv/support.json">>,<<"mix.exs">>, |
| 8 | - <<"README.md">>,<<"LICENSE">>]}. |
| 6 | + [<<"lib/paasaa.ex">>,<<"lib/paasaa/data.ex">>,<<"priv">>, |
| 7 | + <<"priv/languages.json">>,<<"priv/scripts.json">>,<<"priv/support.json">>, |
| 8 | + <<"mix.exs">>,<<"README.md">>,<<"LICENSE">>]}. |
| 9 9 | {<<"licenses">>,[<<"MIT">>]}. |
| 10 10 | {<<"links">>,[{<<"GitHub">>,<<"https://github.com/minibikini/paasaa">>}]}. |
| 11 11 | {<<"name">>,<<"paasaa">>}. |
| @@ -15,4 +15,4 @@ | |
| 15 15 | {<<"optional">>,false}, |
| 16 16 | {<<"repository">>,<<"hexpm">>}, |
| 17 17 | {<<"requirement">>,<<"~> 4.0">>}]]}. |
| 18 | - {<<"version">>,<<"0.3.0">>}. |
| 18 | + {<<"version">>,<<"0.3.1">>}. |
| @@ -0,0 +1,33 @@ | |
| 1 | + defmodule Paasaa.Data do |
| 2 | + @moduledoc false |
| 3 | + |
| 4 | + def scripts do |
| 5 | + "./priv/scripts.json" |
| 6 | + |> File.read!() |
| 7 | + |> JSX.decode!() |
| 8 | + |> Enum.map(fn {name, expr} -> {name, Regex.compile!(expr, "u")} end) |
| 9 | + end |
| 10 | + |
| 11 | + def languages do |
| 12 | + "./priv/languages.json" |
| 13 | + |> File.read!() |
| 14 | + |> JSX.decode!() |
| 15 | + |> Enum.map(&parse_trigrams/1) |
| 16 | + |> Enum.into(%{}) |
| 17 | + end |
| 18 | + |
| 19 | + defp parse_trigrams({script, langs}), do: {script, parse_trigrams(langs)} |
| 20 | + |
| 21 | + defp parse_trigrams(langs) when is_map(langs) do |
| 22 | + Enum.map(langs, fn {lang, trigrams} -> |
| 23 | + {lang, parse_trigrams(trigrams)} |
| 24 | + end) |
| 25 | + end |
| 26 | + |
| 27 | + defp parse_trigrams(trigrams_str) when is_binary(trigrams_str) do |
| 28 | + trigrams_str |
| 29 | + |> String.split("|") |
| 30 | + |> Enum.with_index() |
| 31 | + |> Enum.into(%{}) |
| 32 | + end |
| 33 | + end |
| @@ -4,7 +4,7 @@ defmodule Paasaa.Mixfile do | |
| 4 4 | def project do |
| 5 5 | [ |
| 6 6 | app: :paasaa, |
| 7 | - version: "0.3.0", |
| 7 | + version: "0.3.1", |
| 8 8 | elixir: "~> 1.7", |
| 9 9 | description: description(), |
| 10 10 | package: package(), |
| @@ -53,7 +53,7 @@ defmodule Paasaa.Mixfile do | |
| 53 53 | defp package do |
| 54 54 | [ |
| 55 55 | name: :paasaa, |
| 56 | - files: ["lib/paasaa.ex", "priv", "mix.exs", "README*", "LICENSE*"], |
| 56 | + files: ["lib/paasaa.ex", "lib/paasaa/data.ex", "priv", "mix.exs", "README*", "LICENSE*"], |
| 57 57 | maintainers: ["Egor Kislitsyn"], |
| 58 58 | licenses: ["MIT"], |
| 59 59 | links: %{"GitHub" => "https://github.com/minibikini/paasaa"} |