Packages

returns stop words for the given language

Current section

Files

Jump to
stop_words lib stop_words.ex
Raw

lib/stop_words.ex

defmodule StopWords do
@mapping :stop_words
|> Application.app_dir()
|> Kernel.<>("/priv/stopwords-iso.json")
|> File.read!()
|> Jason.decode!(keys: :atoms)
@include Application.compile_env(:stop_words, :include, Map.keys(@mapping)) |> List.wrap()
@exclude Application.compile_env(:stop_words, :exclude, []) |> List.wrap()
@supported Enum.sort(@include -- @exclude)
for {iso_code, words} <- @mapping, iso_code in @supported do
@doc "returns stop words for " <> to_string(iso_code)
def unquote(iso_code)() do
unquote(words)
end
def get(unquote(to_string(iso_code))) do
unquote(iso_code)()
end
def get(unquote(iso_code)) do
unquote(iso_code)()
end
end
@doc """
returns stop words for provided iso code or an empty string if invalid
or not supported iso code
"""
def get(_), do: []
@doc """
returns list of supported languages
"""
def languages, do: @supported
end