petrovich_elixir v1.0.0 Petrovich View Source

Documentation for Petrovich.

Public interface to all the functions. It can inflect first, middle, and last names.

List of cases

Here's a quick reminder:

nomenative: именительный

genitive: родительный

dative: дательный

accusative: винительный

instrumental: творительный

prepositional: предложный

Link to this section Summary

Functions

The same as firstname/3, but raises ParseException on errors.

The same as lastname/3, but raises ParseException on errors.

The same as middlename/3, but raises ParseException on errors.

Called when an application is started.

Link to this section Functions

Link to this function

firstname(name, case_, gender \\ nil) View Source
firstname(String.t(), atom(), atom() | none()) :: {:ok, String.t()} | :error

Inflects first name.

This function is used to inflect a first name. It accepts three arguments:

  1. name a person's first name
  2. case_ atom, one of the atoms with the case name
  3. optional gender, since it could be detected from name

It returns {:ok, inflected_name} or :error

Examples

iex> Petrovich.firstname("Кира", :dative)
{:ok, "Кире"}
Link to this function

firstname!(name, case_, gender \\ nil) View Source
firstname!(String.t(), atom(), atom() | none()) :: String.t()

The same as firstname/3, but raises ParseException on errors.

Link to this function

lastname(name, case_, gender \\ nil) View Source
lastname(String.t(), atom(), atom() | none()) :: {:ok, String.t()} | :error

Inflects last name.

This function is used to inflect a last name. It accepts three arguments:

  1. name a person's last name
  2. case_ atom, one of the atoms with the case name
  3. optional gender, since it could be detected from name

It returns {:ok, inflected_name} or :error

Examples

iex> Petrovich.firstname("Горева", :dative)
{:ok, "Гореве"}
Link to this function

lastname!(name, case_, gender \\ nil) View Source
lastname!(String.t(), atom(), atom() | none()) :: String.t()

The same as lastname/3, but raises ParseException on errors.

Link to this function

middlename(name, case_, gender \\ nil) View Source
middlename(String.t(), atom(), atom() | none()) :: {:ok, String.t()} | :error

Inflects middle name.

This function is used to inflect a middle name. It accepts three arguments:

  1. name a person's middle name
  2. case_ atom, one of the atoms with the case name
  3. optional gender, since it could be detected from name

It returns {:ok, inflected_name} or :error

Examples

iex> Petrovich.firstname("Викторовна", :dative)
{:ok, "Викторовне"}
Link to this function

middlename!(name, case_, gender \\ nil) View Source
middlename!(String.t(), atom(), atom() | none()) :: String.t()

The same as middlename/3, but raises ParseException on errors.

Called when an application is started.

This function is called when an application is started using Application.start/2 (and functions on top of that, such as Application.ensure_started/2). This function should start the top-level process of the application (which should be the top supervisor of the application's supervision tree if the application follows the OTP design principles around supervision).

start_type defines how the application is started:

  • :normal - used if the startup is a normal startup or if the application is distributed and is started on the current node because of a failover from another node and the application specification key :start_phases is :undefined.
  • {:takeover, node} - used if the application is distributed and is started on the current node because of a failover on the node node.
  • {:failover, node} - used if the application is distributed and is started on the current node because of a failover on node node, and the application specification key :start_phases is not :undefined.

start_args are the arguments passed to the application in the :mod specification key (e.g., mod: {MyApp, [:my_args]}).

This function should either return {:ok, pid} or {:ok, pid, state} if startup is successful. pid should be the PID of the top supervisor. state can be an arbitrary term, and if omitted will default to []; if the application is later stopped, state is passed to the stop/1 callback (see the documentation for the c:stop/1 callback for more information).

use Application provides no default implementation for the start/2 callback.

Callback implementation for Application.start/2.