Current section

12 Versions

Jump to

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"}